Una de las estructuras de datos en mi proyecto actual requiere que almacene listas de varios tipos (String, int, float, etc.). Necesito ser capaz de almacenar dinámicamente cualquier cantidad de listas sin saber qué tipos serán.Lista de listas de diferentes tipos
Intenté almacenar cada lista como object
, pero me encontré con problemas al tratar de volver al tipo apropiado (seguía reconociendo todo como List<String>
).
Por ejemplo:
List<object> myLists = new List<object>();
public static void Main(string args[])
{
// Create some lists...
// Populate the lists...
// Add the lists to myLists...
for (int i = 0; i < myLists.Count; i++)
{
Console.WriteLine("{0} elements in list {1}", GetNumElements(i), i);
}
}
public int GetNumElements(int index)
{
object o = myLists[index];
if (o is List<int>)
return (o as List<int>).Count;
if (o is List<String>) // <-- Always true!?
return (o as List<String>).Count; // <-- Returning 0 for non-String Lists
return -1;
}
estoy haciendo algo mal? ¿Hay una mejor manera de almacenar una lista de listas de varios tipos, o hay una mejor manera de determinar si algo es una lista de cierto tipo?
¿Puedes publicar un programa mínimo pero completo que demuestre tu problema? – dtb