C# List<profils>, help

Fermé
haloremi Messages postés 304 Date d'inscription lundi 10 mars 2008 Statut Membre Dernière intervention 6 novembre 2015 - 25 nov. 2012 à 14:59
haloremi Messages postés 304 Date d'inscription lundi 10 mars 2008 Statut Membre Dernière intervention 6 novembre 2015 - 2 déc. 2012 à 13:25
Bonjour,
La partie de mon programme consiste à récupérer dans un fichier profil.xml le nom le prénom et le sexe d'un profils mais voila j'ai un problème c'est qu'il me récupère trois profils identiques. Voici mon code :
List<Profils> list_profil = new List<Profils>();
        
        public MainWindow()
        {
            //Verifie si le document xml profil existe
            if (System.IO.File.Exists("profils.xml"))
            {
                Profils profils_temp = new Profils();//profils temporaire pour récuperer les informations
                //on lit le fichier en recuperant les données
                XmlDocument doc = new XmlDocument();
                doc.Load(@"profils.xml");
                foreach (XmlNode e in doc.DocumentElement.ChildNodes)
                {
                    profils_temp.set_nom(e.Attributes["id"].Value);
                    foreach (XmlNode i in e.ChildNodes)
                    {
                        if(i.Name.Equals("prenom"))
                        {
                            profils_temp.set_prenom(i.InnerText);
                        }
                        else
                        {
                            profils_temp.set_sexe(i.InnerText);
                        }
                        
                    }
                    list_profil.Add(profils_temp);//A chaque fois que je passe ici il me change mes list_profil[0]/[1] etc 
													//donc à la fin je me retrouve avec par exemple 3 profils avec le même nom prénom sexe.
                    
                }


A voir également:

3 réponses

Cisco_31 Messages postés 131 Date d'inscription jeudi 18 juin 2009 Statut Membre Dernière intervention 28 juin 2013 16
27 nov. 2012 à 16:10
Bonjour,

déplace la ligne:
Profils profils_temp = new Profils();
juste avant celle-ci:
profils_temp.set_nom(e.Attributes["id"].Value);
0
haloremi Messages postés 304 Date d'inscription lundi 10 mars 2008 Statut Membre Dernière intervention 6 novembre 2015 5
2 déc. 2012 à 13:14
Bonjour,

Merci de m'avoir répondu, je n'étais pas la de la semaine. Je viens d'essayer ta solution mais sa ne change rien, j'ai toujours les trois même profils.
0
haloremi Messages postés 304 Date d'inscription lundi 10 mars 2008 Statut Membre Dernière intervention 6 novembre 2015 5
2 déc. 2012 à 13:25
Il doit y avoir un problème lié à mon objet temp comme si aux lieu d'attribuer l'objet profils_temp, il pointé dessus. J'ai réglé mon problème en creer 3 variable que j'envoie au constructeur profils quand je l'ajoute à ma list_profils.
Merci quand même.
0