Liste de Listes de types différents

L'une des structures de données dans mon projet actuel, je dois stocker des listes de types divers (String, int, float, etc.). - Je besoin pour pouvoir stocker un nombre quelconque de listes sans savoir ce que les types qu'ils seront.

J'ai essayé le stockage de chaque liste en tant que object, mais j'ai couru dans des problèmes en essayant de jeter en arrière dans le type approprié (elle a gardé reconnaissant tout comme un List<String>).

Par exemple:

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;
}

Je fais quelque chose de mal? Est-il une meilleure façon de stocker une liste de listes de types différents, ou est-il une meilleure façon de déterminer si quelque chose est une liste d'un certain type?

Pouvez-vous poster un minimum mais programme complet qui démontre votre problème?

OriginalL'auteur themarshal | 2010-03-19