【发布时间】:2020-07-28 09:44:48
【问题描述】:
我有一个这样的列表:
List<Food> foods = new List<Food>();
foods.add(food1);
foods.add(food2);
foods.add(food3);
....
foodsNewList = foods.Where("some conditions").ToList();
我想知道.ToList() 是否会生成NEW 项?
我的意思是对列表中以前项目的引用是否仍会保存?
例如。如果我有
food1.Name="test";
是否会导致foodsNewList中的食物更新?
【问题讨论】:
-
它将更新该列表和该项目。
-
您可以自己轻松地进行实验。列表中的元素是相同的对象,编译器通常无法知道如何复制它们。
-
取决于
Food是类还是结构。它应该是一个类。 -
@HenkHolterman 如果是类会发生什么?
-
@HenkHolterman 在结构中,它们将被按值传递,它们将是新的副本。我说的对吗?