Disons que j'ai une classe
public class MyObject
{
   public int SimpleInt{get;set;}
}
Et j'ai un List<MyObject>, et je ToList()le change , puis je change l'un des SimpleInt, ma modification sera-t-elle propagée à la liste d'origine. En d'autres termes, quel serait le résultat de la méthode suivante?
public void RunChangeList()
{
  var objs = new List<MyObject>(){new MyObject(){SimpleInt=0}};
  var whatInt = ChangeToList(objs );
}
public int ChangeToList(List<MyObject> objects)
{
  var objectList = objects.ToList();
  objectList[0].SimpleInt=5;
  return objects[0].SimpleInt;
}
Pourquoi?
P / S: Je suis désolé s'il semble évident de le découvrir. Mais je n'ai pas de compilateur avec moi maintenant ...
.ToList()une copie superficielle . Les références sont copiées, mais les nouvelles références pointent toujours vers les mêmes instances que celles vers lesquelles pointent les références d'origine. Quand on y pense,ToListon ne peut pas en créernew MyObject()quandMyObjectest unclasstype.