Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设我有一个名为 PeopleCollection 的List<Person>变量
List<Person>
在下面的语句中, newPeople 会得到 PeopleCollection 的深层副本吗?
var newPeople=(from p in PeopleCollection select p).ToList();
对 newPeople 的任何操作会影响 PeopleCollection 吗?
这将创建一个新列表并将该列表中的所有项目添加到新列表中。它将执行所有这些项目的“浅”副本,因此如果这些项目是可变引用类型,则它们的变异将反映在任一集合中。
这意味着对任一列表本身的更改(添加项目、删除项目等)将不会反映在另一个列表中,即使列表中任何项目的突变将从任一集合中反映出来。
(总之,不,它不会。)
它返回一个List引用由 . 返回的相同对象的Enumerable。
List
Enumerable