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 :

passage en IEnumerable


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Par défaut passage en IEnumerable
    Bonjour à tous,

    j'ai un gros soucis, avec IEnumerable.

    J'ai repris un soft, qui utilise IEnumerable<T> tout le long du traitement.

    Hors, je dois effectuer un changement de donnée.

    je fais un foreach sur mon IEnumerable<T>, et j'ajoute chacun des éléments (après modif) dans une iList.

    Petit problème, j'aurais besoin pour continuer mon programme, de traiter mon iList en IEnumerable<T>.

    Comment faire ?

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Tu pourrais utiliser un List<T> pour ajouter chacun des éléments (après modif) et faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            taListModif.AsEnumerable<T>();
    où taListModif est ta List<T>

  3. #3
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Par défaut
    Merci pour cette réponse rapide, mais je ne trouve pas de asenumerable pour ma liste.

    Voici le code, pôur plus d'explication :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    XmlSerializer xSer = new XmlSerializer(typeof(T[]));
    
                    IEnumerable<CDefDiscretSauvegarde> ilist2 = (IEnumerable<CDefDiscretSauvegarde>)xSer.Deserialize(reader);
                    bool discret_find = false;       // flag d'identification du discret reçu
    
                    ArrayList ilist3 = new ArrayList();
                    IList<CDefDiscret> liste_dico = new List<CDefDiscret>(CMain.Instance.DicoDiscrets); // liste des discrets de référence
                    foreach (CDefDiscretSauvegarde cDefDiscret in ilist2)
                    {
                        int numTiroir = cDefDiscret.NumTiroir;
                        int numcarte = cDefDiscret.NumCarte;
                        int numVoie = cDefDiscret.NumVoie;
                        CDefDiscret discretTmp = new CDefDiscret();
                        for (int j = 0; j < liste_dico.Count; j++)
                        {
                            CDefDiscret d = (CDefDiscret)liste_dico[j];
                            if ((d.NumTiroir == numTiroir) && (d.NumCarte == numcarte) && (d.NumVoie == numVoie))
                            {
                                discretTmp = d.Clone() as CDefDiscret; // new CDefDiscret(d);
                                discretTmp.Pilotage = cDefDiscret.Pilotage;
                                discretTmp.Surveillance = cDefDiscret.Surveillance;
                                discretTmp.MoyenSurveillance.LedAffichage.NumLed = cDefDiscret.NumLed;
                                discretTmp.MoyenSurveillance.LedAffichage.CouleurEtatVRAI = cDefDiscret.CouleurEtatVRAI;
                                discretTmp.MoyenSurveillance.LedAffichage.CouleurEtatFAUX = cDefDiscret.CouleurEtatFAUX;
                                discretTmp.MoyenSurveillance.LedAffichage.Utilisee = cDefDiscret.Utilisee;
                                discretTmp.MoyenSurveillance.ModeSurveillance = cDefDiscret.ModeSurveillance;
                                discretTmp.DashInPort = cDefDiscret.DashInPort;
                                discret_find = true;
                                ilist3.Add(discretTmp);
                            }
                        }
                        if (!discret_find)
                            MessageBox.Show(_gestionLangue.LireTexte(CGestionLangue.ESection.information.ToString(), "no_discret", "") + string.Format(" {0:00} / {1:00} / {2:00}", numTiroir, numcarte, numVoie));
                    }
                    IEnumerable<T> iIist = (IEnumerable<T>)ilist3; // exception error
                   
                    // Fusionner la liste courante et les nouveaux éléments
                    this.MergeWith(iIist, isClearBefore);
    Le but est d'arriver à passer mon ilist3 en IEnumerable pour passer dans la méthode : "this.mergeWith"

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrayList ilist3 = new ArrayList();
    moi je te proposais d'utiliser un List<T> et pas un ArrayList. Ca devrait marcher pareil dans ton code ( add est dispo)

  5. #5
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Par défaut Ilist<T>
    ok
    Maintenant, j'ai donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                    //ArrayList ilist3 = new ArrayList();
                    List<T> ilist3 = new List<T>();
    Mais la méthode AsEnumerable() n'est toujours pas présente pour ilist3...

    Même l'aide de .net ne la connait pas... quid ?

  6. #6
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Par défaut as enumerable
    après recherche, il s'agit d'une méthode du framework 3.0 Hors j'utilise le 2.0

    Une autre solution ?

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Pardon, je suis avec le framework 3.0 (que tu ne doit pas avoir)...

    Dsl. Mais si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IEnumerable<T> iIist = ilist3;
    Ca ne fonctionne pas ?

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

Discussions similaires

  1. passage d'un nom de table dans une procédure stockée
    Par thierry V dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/07/2010, 16h48
  2. Pb BDE suite a passage en Windows 2000 pro
    Par ARIF dans le forum Paradox
    Réponses: 4
    Dernier message: 18/11/2002, 11h39
  3. [VB6]Passage d'un tableau dans une DLL écrite en delphi
    Par flash dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 20/09/2002, 10h15
  4. [VB6]Passage par référence d'une prop. d'objet à une fct
    Par -gYs- dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 02/09/2002, 08h55
  5. Passage de parametre a une anim Flash 5
    Par debug dans le forum Intégration
    Réponses: 4
    Dernier message: 03/06/2002, 17h59

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