Допустим, у меня есть класс
public class MyObject
{
public int SimpleInt{get;set;}
}
И у меня есть List<MyObject>
, и я ToList()
это, а затем изменить один из SimpleInt
, будут ли мои изменения будут распространены обратно в первоначальный список. Другими словами, каков будет результат следующего метода?
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;
}
Зачем?
P / S: Извините, если кажется очевидным выяснить. Но сейчас у меня нет компилятора ...
.ToList()
сделать мелкую копию. Ссылки копируются, но новые ссылки по-прежнему указывают на те же экземпляры, на которые указывают исходные ссылки. Когда вы думаете об этом,ToList
не можете создать что-либо,new MyObject()
когдаMyObject
естьclass
тип.