我有一个IEnumerable对象:
IEnumerable<string> listSelectedItems;
其中包含三项。现在我创建了一个新对象,并希望从listSelectedItems获取所有项目,所以我写了这段代码:
IEnumerable<string> newList = listSelectedItems;
但是现在当我改变newList时,listSelectedItems也会被改变。如何在不参考的情况下实现更改或创建新的IEnumerable。
答案 0 :(得分:10)
你在找这个吗?
IEnumerable<string> newList = listSelectedItems.ToList();
答案 1 :(得分:4)
IEnumerable是一个接口,所以你不能实例化它,你需要它的实现,例如List
IEnumerable<string> newList = new List<string>(listSelectedItems);
在您设置的情况下newList = listSelectedItems
表示newList
只是对listSelectedItems
的引用,因此如果更改了基础对象,newList
将引用更改的对象。