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