如何创建 IEnumerable 的浅拷贝

本文关键字:浅拷贝 IEnumerable 何创建 创建 | 更新日期: 2023-09-27 18:36:05

我有一个 IEnumerable 对象为:

IEnumerable<string> listSelectedItems; 

其中包含三个项目。现在我创建了一个新对象,并希望从 listSelectedItems 中获取所有项目,所以我编写了以下代码:

 IEnumerable<string> newList = listSelectedItems;

但是现在当我更改newList时,ListSelectedItems也会更改。我怎样才能在没有引用的情况下更改或创建新的 IEnumerable。

如何创建 IEnumerable<T> 的浅拷贝

你在找这个吗?

IEnumerable<string> newList = listSelectedItems.ToList();

IEnumerable是一个接口,所以你不能实例化它,你需要它的实现,例如List

IEnumerable<string> newList = new List<string>(listSelectedItems);

在您的情况下,设置newList = listSelectedItems意味着newList将只是对listSelectedItems的引用,因此如果基础对象发生更改,newList将引用更改的对象。