Estoy casi avergonzado de hacer esta pregunta, pero como programador de C desde hace mucho tiempo, siento que quizás no conozca la mejor manera de hacer esto en C#.¿Cuál es la mejor manera de devolver dos listas en C#?
Tengo una función de miembro que necesito devolver dos listas de un tipo personalizado (List<MyType>
) y sé de antemano que siempre tendré un valor de retorno de solo dos de estas listas.
Las opciones obvias son:
public List<List<MyType>> ReturnTwoLists();
o
public void ReturnTwoLists(ref List<MyType> listOne, ref List<myType> listTwo);
Ambos parecen ser no óptimo.
¿Alguna sugerencia sobre cómo mejorar esto?
La primera forma no deja en claro en la sintaxis que solo se devuelven 2 listas, y la segunda usa referencias en lugar de un valor de retorno, que parecen tan no C#.
Solo un residuo ... .NET 4.0 tiene el tipo Tuple <>. –
Veo que usaste T y U para especificar los elementos. Si tuvieras más de 2 tuplas, ¿elegirías T-U-V-W ... o T-U-P-L-E? :) –
@Mark: no lo he pensado. ¡Antes de pensar en eso, pensaría en cambiar a F #! –