4

我有一个 IEnumerable 对象:

IEnumerable<string> listSelectedItems; 

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

 IEnumerable<string> newList = listSelectedItems;

但是现在当我更改 newList 时,listSelectedItems 也会被更改。如何在没有参考的情况下更改或创建新的 IEnumerable。

4

2 回答 2

12

你在找这个吗?

IEnumerable<string> newList = listSelectedItems.ToList();
于 2013-10-19T07:12:33.333 回答
4

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

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

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

于 2013-10-19T07:14:36.867 回答