IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Liste de Listes génériques


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Par défaut Liste de Listes génériques
    Bonjour,

    Je cherche un moyen de stocker des listes génériques de type génériques différents, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    List<Integer>
    List<String>
    List<Boolean>
    le tout dans un élément List.

    Mais je ne vois pas comment déclarer la chose !
    Un truc du genre :
    Mais bon c'est pas si facile que ça, vous avez des suggestions ?

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    List<Object> par exemple

  3. #3
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Par défaut
    salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    public class A
        {
            private List<string> ls1 = new List<string>();
     
            public List<string> Ls1
            {
                get { return ls1; }
                set { ls1 = value; }
            }
     
            private List<int>  ls2 = new List<int>();
     
            public List<int> Ls2 
            {
                get { return ls2; }
                set { ls2 = value; }
            } 
     
        }
     
     public class B
        {
            private List<A> ls3 = new List<A>();
     
            public List<A> Ls3
            {
                get { return ls3; }
                set { ls3 = value; }
            }
         }

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Par défaut
    L'idée des String ou Int étaient simplement des exemples, je ne sais absolument pas quels types seront ajoutés à ma liste.

    Le problème avec le List<Objet> c'est que je ne vois pas comment faire une itération sur un type Object par la suite ?

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Le problème, c'est que si tu stockes des listes de différents types, tu perds l'avantage des génériques (c'est à dire essentiellement le typage fort). Pour manipuler une liste de façon fortement typée, tu as besoin de connaitre son type statiquement.

    Pourquoi as-tu besoin de faire ça exactement ? il y a peut-être une solution plus adaptée...

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Par défaut
    Je travaille sur un moteur de template, et j'ai besoin d'associer une liste d'objets à un mot clé pour pouvoir traiter des boucles.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    {#users}
    {.id} {.name}
    {/#users}
    J'associe une List<User> au mot clé "users" et je peut ainsi traiter la boucle avec ma liste.

    Une autre solution est d'appliquer une à une les boucles par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    template.process("users", users);
    Mais je préférais l'idée d'ajouter les listes et de n'avoir qu'un seul appel à la méthode process.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    OK, et je suppose que tu accèderas aux propriétés par la réflexion ? Dans le cas, le plus simple est d'utiliser des List<Object>, comme suggéré par theMonz31. Le typage fort ne t'apportera rien dans ce cas là

Discussions similaires

  1. Liste doublement chainée générique, erreurs !
    Par Virus721 dans le forum C++
    Réponses: 4
    Dernier message: 05/11/2010, 13h47
  2. liste de délégués génériques
    Par Silver326 dans le forum C#
    Réponses: 2
    Dernier message: 24/04/2009, 14h22
  3. Réponses: 11
    Dernier message: 21/03/2008, 22h46
  4. Regrouper une liste en liste de listes
    Par West01 dans le forum Prolog
    Réponses: 12
    Dernier message: 14/03/2008, 14h07
  5. Liste chainée double générique
    Par issou dans le forum C
    Réponses: 3
    Dernier message: 11/11/2005, 02h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo