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 :

[debutant][C#] Comment implémenter un itérateur sur une liste ?


Sujet :

C#

  1. #1
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut [debutant][C#] Comment implémenter un itérateur sur une liste ?
    Bonjour à tous,

    Note: je suis une quiche en .Net, alors je m'excuse si ma question est ridicule.

    Je voudrais créer une classe qui encapsule une Liste. Pour l'instant, j'en suis là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class MaListe
    {
        private List<MonObjet> MesObjets;
     
        public void AddObject(MonObjet item) //ajoute un objet dans la liste
        {
            MesObjets.Add(item);
        }
     
    }
    Je voudrais maintenant implémenter l'itérateur qui me permettra d'utiliser MaListe ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    MaListe liste;
    // je remplis ma liste
    foreach (MonObjet unObjet in liste)
    {
       unObjet.FaitQuelqueChose();
    }
    Comment faire?

    Remarque: j'ai choisi d'encapsuler la collection List car je dois implémenter d'autres fonctionnalités dans MaListe.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  2. #2
    Invité
    Invité(e)
    Par défaut
    Voila un bout de code que j'avais developpé pour un mes programmes. Adapte le à ton probleme.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    listeUtilisateurs = new Hashtable(); 
    listeUtilisateurs.Clear() ;
    Dictionary<int, object> ListUsers = _users.SelectData() ;
     
    listBoxUser.Items.Clear() ;
    Dictionary<int, object>.Enumerator iUser = ListUsers.GetEnumerator() ;
    while(iUser.MoveNext()) {
        User user = (User)(iUser.Current.Value) ;
        int indexListBox = listBoxUser.Items.Add(user.nom + " " + user.prenom) ;
        listeUtilisateurs.Add(indexListBox, user) ;
    }

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Salut,

    Ta classe doit simplement implémenter l'interface IEnumerable (ou mieux encore IEnumerable<T> si tu fais du .Net2) , voir la doc.

  4. #4
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Merci, c'est nickel.

    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-E] Comment créer un control sur une liste de choix ?
    Par Soulsurfer dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/02/2007, 12h42
  2. Réponses: 2
    Dernier message: 29/11/2006, 11h52
  3. Réponses: 8
    Dernier message: 15/05/2006, 14h33
  4. Réponses: 7
    Dernier message: 18/04/2006, 17h44
  5. [Procédure stockée] Comment travailler sur une liste de ...
    Par WwiloO dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 13/02/2006, 11h22

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