Quiero usar algunas características de python como Tuples and Sets en C#. ¿Debería implementarlos? o ya están implementados? ¿Alguien podría saber una biblioteca de estructuras dinámicas de datos para lenguajes .net?Cómo simular tuplas y conjuntos en C#?
Respuesta
Para Sets, los HashSets (una característica de .NET 3.5) hacen el truco bastante bien.
Una respuesta parcial, por tuplas:
- .NET 4.0 proporciona [algunos] soporte para tuples.
- Las versiones anteriores de C# pueden usar el tipo anónimo (creo que se introdujo en .Net 2.0, 3.0 con seguridad, con todas las cosas de LINQ).
Ninguno de estos enfoques es tan conveniente como con Python; la principal desventaja proviene del hecho de que C# está tipado estáticamente. Sin embargo, la clase C# 4.0 Tuple tiene métodos estáticos similares a los de fábrica que facilitan la creación de tuplas (hasta 8 tuplas, es decir, tuplas con 8 miembros). Por ejemplo, uno puede tener
var customer1 = Tuple.Create("John", "Smith", 14, 5.33, "202-123-444");
El uso del tipo anónimo se puede hacer de la siguiente manera. El principal inconveniente de este enfoque es que se necesita para nombrar explícitamente los elementos de la "tupla" (aunque esta nomenclatura puede ser implícitamente "proyectada" si los valores utilizados para la inicialización se "proyectan" de otro objeto.
customer1 = new Customer { Name = "John", Surname = "Smith", NumberOfVisits = 14, CurrentBalance = 5.33, PhoneNr = "202-123-444" };
@mjv: C# es un lenguaje * estático más * tipado. Tanto C# como Python están fuertemente tipados. – quamrana
@quamrana: bastante bien. A eso me refería; ahora editado en consecuencia. Se agregaron – mjv
tipos anónimos en C# 3.0/.NET 3.5. .NET 3.0 era solo material de BCL sin cambios en los idiomas –
Si está trabajando con .NET Framework antes de lo mencionado anteriormente, Wintellect Power Collections podría ser de algún interés, tiene Pair
y Triple
para 2- y 3-tuplas, y colecciones como Set
, Bag
y Ordered
sabores de ambas.
Por supuesto, no hay nada que te impida implementar 4.0's Tuple
usted mismo.
(Por cierto, no hay nada particularmente 'dinámica' sobre estructuras de datos como estos en sí mismos)
- 1. ¿Cómo simular C++ friend en C# y VB.NET?
- 2. C++ 0x: ¿se permiten tuplas de tuplas?
- 3. Cómo filtrar y combinar 2 conjuntos de datos en C#
- 4. Generando tuplas de tuplas
- 5. ¿Cómo puedo simular interfaces en C++?
- 6. cómo simular la herencia múltiple en C#
- 7. Tuplas y compatibilidad de asignación de desempaquetado en C#?
- 8. Conjuntos de amigos en C#
- 9. Simular plantillas variadic en C#
- 10. Cómo simular usuarios y solicitudes en django
- 11. ¿Cómo puedo simular una unión C++ en C#?
- 12. Conjuntos de cadenas en C
- 13. Administrar colecciones de tuplas en Objective-C
- 14. C# Simular VolumeMute pulse
- 15. ¿Cómo trabajo con conjuntos y proyectos compartidos?
- 16. C#: simular pérdidas de memoria
- 17. Cómo invertir tuplas en Python?
- 18. Manipulando tuplas
- 19. csc.exe y conjuntos dependientes
- 20. Conjuntos asociativos y Java
- 21. Dividir una tupla de tuplas (o lista de listas) de valores emparejados en conjuntos completos independientes?
- 22. Expandir tuplas en argumentos
- 23. ¿Cómo añadir tuplas con
- 24. ¿Cómo puedo simular una OracleConnection y OracleCommand?
- 25. Simular rasgar un doble en C#
- 26. Ordenando tuplas en F #
- 27. C# LINQ y cálculos que involucran grandes conjuntos de datos
- 28. C++ 0x Tuplas Almacenar elementos al revés
- 29. C++ 0x tuplas no tienen iteradores, ¿verdad?
- 30. ¿Cómo cambiar entre 2 conjuntos de funciones en C++?
"... que es como una tupla", aunque un sólo el 2-tupla. – Thomas
@Thomas Sí, quise especificar una 2-tupla. Editado y arreglado. Gracias. –
keyvaluepair nunca es una tupla. pls edit it .. – nawfal