Je viens de constater un principe auquel je n'avais pas fait attention, a savoir la modification (par référence) d'un objet présent dans une IList.
MyObj a = new MyObj(); MyObj b = a; a.Name = "Test"; Console.WriteLine(b.Name); // Marquera "Test"Maintenant passons en mode list
List< MyObj > listA = new List< MyObj >(); // ajout d'element var item = new { id = 1, libelle = "Test1" }; listA.Add(item); item = new { id = 2, libelle = "Test2" }; listA.Add(item); item = new { id = 3, libelle = "Test3" }; listA.Add(item); item = new { id = 4, libelle = "Test4" }; listA.Add(item); foreach(var i in listA) { if(i.id == 2) { i.libelle = "Test2Modifie"; } } Console.WriteLine(listA[0].libelle); // Marquera "Test1" Console.WriteLine(listA[1].libelle); // Marquera "Test2Modifie" Console.WriteLine(listA[2].libelle); // Marquera "Test3" Console.WriteLine(listA[3].libelle); // Marquera "Test4"Voila.
Aucun commentaire:
Enregistrer un commentaire