5 votes

Liste générique / Dictionnaire

J'essaie de produire un graphique d'objets par réflexion. Il contient plusieurs types génériques (listes, dictionnaires). Je ne connais pas les types (chaîne, objet, etc.) qu'ils contiennent mais je veux les lister (en utilisant .ToString()).

Alors, existe-t-il un moyen de sortir une liste / un dictionnaire générique de manière générique, c'est-à-dire sans écrire des fonctions surchargées pour chaque combinaison clé <-> valeur ?

Je pense que ce sera possible avec .NET 4.0, mais ce n'est pas encore le cas actuellement

4voto

Marc Gravell Points 482669

Si vous utilisez la réflexion, les génériques deviennent très délicats. Pouvez-vous simplement utiliser les interfaces non génériques ? IDictionary / IList ? Ce serait un lot plus facile... quelque chose comme :

static void Write(object obj) {
    if (obj == null) { }
    else if (obj is IDictionary) { Write((IDictionary)obj); }
    else if (obj is IList) { Write((IList)obj); }
    else { Console.WriteLine(obj); }
}
static void Write(IList data) {
    foreach (object obj in data) {
        Console.WriteLine(obj);
    }
}
static void Write(IDictionary data) {
    foreach (DictionaryEntry entry in data) {
        Console.WriteLine(entry.Key + "=" + entry.Value);
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X