Salut !
J'ai un petit soucis avec un ArrayList. Je vous explique cela ( je tente ) , avant de vous exposé mon code.
En gros j'ai un objet a , qui est dans une boucle. Comme les tableaux dynamique n'existent apparemment pas en C#, j'utilise un arraylist pour ajouter (Al.add() ) ce que contient mon objet dans ce dernier.
Lors du premier passage dans la boucle, aucun soucis, lors du second passage, mon premier ajout est égale a mon second. Il y a de forte chance pour que si j'en ajouterai un troisieme de la même manière, les trois serais égaux ( au troiseme. )
Le problème est pour moi tout repéré : mon ArrayList ne garde pas les "valeurs" de ce que je lui passe, mais ( sans doute ) la reference sur mon objet.
Ma question est, Comment remédier à cela ?
Code C# : 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 //myAl est déclaré plus haut ainsi : ArrayList myAL = new ArrayList(); XmlDocument XmlDoc = new XmlDocument(); XmlNodeList element; CItem item=new CItem(); // Item est une classe qui contient deux entiers et un char int i = 0; int id = 0; int temps = 0; char vtype='\0'; XmlDoc.Load(path); element = XmlDoc.DocumentElement.GetElementsByTagName("variable"); foreach (XmlNode node in element) { foreach (XmlNode childnode in node) { if (childnode.LocalName.Equals("id")) id = int.Parse(childnode.InnerText); else if (childnode.LocalName.Equals("type")) vtype = childnode.InnerText.ToCharArray()[0]; else temps=int.Parse(childnode.InnerText); } item.setItem(id, vtype, temps); myAL.Add(item); } for (i = 0; i < myAL.Count;i++ ) MessageBox.Show(myAL[i].ToString()); // affiche toujours le dernier lu, au lieu d'afficher tous ceux qui ont été lu.
[EDIT] Je vous ajouter le fichier XML, ça sert à rien mais bon
A bientot.
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <config> <variable> <id>700</id> <type>w</type> <temps>5</temps> </variable> <variable> <id>500</id> <type>b</type> <temps>7</temps> </variable> </config>
Partager