2011-11-20 7 views

Respuesta

7

No, no hay nada en el tipo tupla que le ayuda a cabo aquí. Opciones:

  • Si necesita pasar los valores en varios métodos, cree su propio tipo con las propiedades adecuadas. (Usted podría derivar de Tuple aquí si realmente desea, y simplemente proporcionar propiedades que delegan a Item1 y Item2, pero no estoy seguro de que hubiera)
  • Si sólo necesita los valores dentro de un método, utilizar un anonymous type
1

Puede escribir un par de métodos de extensión para Tuple: Primero que devuelve el primer elemento, y Rest que devuelve una subtuple desde el segundo elemento hacia adelante. Puede ser una solución genérica y fácil de usar.

Si llamas a First car y Rest cdr, harás mucha gente muy feliz http://en.wikipedia.org/wiki/CAR_and_CDR.

3

En la versión C# 7 tenemos la función de dar un nombre descriptivo a Tuple Values. Nota: Simplemente tipeé directamente el código aquí no compilado.

por ejemplo

(int Latitude, int Longitude, string city) GetPlace() 
{ 
    return(20,30,"New York");  
} 

var geoLocation = GetPlace(); 
WriteLine($"Latitude :{geoLocation.Latitude}, Longitude:{geoLocation.Longitude}, City:{geoLocation.city}"); 
+3

Nota para los lectores potenciales futuras: Esta respuesta fue publicada antes de C# 7 fue lanzado. Entonces la sintaxis exacta aún está sujeta a cambios. (Personalmente, habría esperado antes de publicar esto) – sstan

Cuestiones relacionadas