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

Windows Forms Discussion :

Balayer une collection maison avec for each


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de chris81
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 626
    Par défaut Balayer une collection maison avec for each
    bonjour,

    j'ai une classe mere CHAMPMERE, une classe fille CHAMP et une classe fille CHAMPGROUPE qui à une liste de CHAMP.

    Comment puis je faire pour utiliser le FOR EACH sur les champ groupe. c'est à dire que je souhaite partir d'un liste de CHAMPMERE general qui contient des CHAMP et des CHAMPGROUPE. Si on est sur un type CHAMP c'est bon par contre j'aimerai que si on est sur un type CHAMPGROUPE on entre et on le balaie automatiquement.

    En gros quand je lance mon FOR EACH sur la liste générale, il balaie les CHAMP contenu dans les CHAMPGROUPE et les CHAMP.

    J'ai implementé ma classe de IEnumerator. Redefinit les Current, Movenext et Reset.

    Merci

  2. #2
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Par défaut
    Bonjour,

    Je comprends pas très bien ton problème ...

    Si je reprends, tu as donc 3 classes :
    • CHAMPMERE
    • CHAMPGROUPE
    • CHAMP


    CHAMPMERE contient une liste de CHAMPGROUPE et CHAMPGROUPE contient une liste de CHAMP.

    C'est bien ça ?

    Ensuite, si j'ai bien compris tu aimerais faire la chose suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach (CHAMP champ in champmere)
    {
    }
    et que ca balaye tous les CHAMP compris dans la liste de CHAMPGROUPE ??

  3. #3
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Ce que tu veux faire, donc, c'est parcourir un arbre. Une recherche sur ce forum ou sur google de "parcourir + arbre + C#" me parait un bon départ

  4. #4
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Par défaut
    Si c'est bien cela que tu dois faire, il va falloir un peu revoir la conception de tes classes, pour quelles héritent d'une classe abstraite ou interface commune, avec au moins une propriété renvoyant la liste des enfants.

    Rapido, voici une fonction recursive qui permet de parcourrir un arbre :

    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
    public void parcourir(Noeud pNoeud)
    {
     
         // Code personnalisé 1
     
         if (pNoeud.Fils != null)
         {
             foreach (Noeud n in pNoeud.Fils)
             {
                 parcourir(n);
             }
         }
     
         // Code personnalisé 2
     
    }
    Cette méthode permet de parcourir un arbre de gauche à droite.

  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
    Citation Envoyé par chris81 Voir le message
    J'ai implementé ma classe de IEnumerator. Redefinit les Current, Movenext et Reset.
    Ce n'est pas IEnumerator qu'il faut implémenter, mais IEnumerable...

Discussions similaires

  1. un For Each qui ne fonctionne pas avec une collection maison !
    Par grenouillesiverte dans le forum Windows Forms
    Réponses: 7
    Dernier message: 01/09/2007, 21h00
  2. Collection invisible avec for each
    Par afrodje dans le forum VB.NET
    Réponses: 2
    Dernier message: 27/04/2007, 12h08
  3. [XML][XSLT] Débutant {Probléme avec For-each-group}
    Par Silvia12 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 29/01/2006, 21h38
  4. [VB]Probleme avec for each .....
    Par STRUFIELD dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 20/01/2006, 08h31
  5. [VB.NET] Problème avec For Each...
    Par cyrcroix dans le forum Windows Forms
    Réponses: 5
    Dernier message: 15/06/2005, 10h49

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