C# 如何创建IEnumerable的浅拷贝<;T>;?
我有一个IEnumerable对象,如:C# 如何创建IEnumerable的浅拷贝<;T>;?,c#,linq,shallow-copy,C#,Linq,Shallow Copy,我有一个IEnumerable对象,如: IEnumerable<string> listSelectedItems; IEnumerable listSelectedItems; 它包含三个项目。现在,我创建了一个新对象,并希望从listSelectedItems获取所有项目,因此我编写了以下代码: IEnumerable<string> newList = listSelectedItems; IEnumerable newList=listSelected
IEnumerable<string> listSelectedItems;
IEnumerable listSelectedItems;
它包含三个项目。现在,我创建了一个新对象,并希望从listSelectedItems获取所有项目,因此我编写了以下代码:
IEnumerable<string> newList = listSelectedItems;
IEnumerable newList=listSelectedItems;
但是现在,当我修改newList时,listSelectedItems也会被修改。如何在没有参考的情况下更改或创建一个新的IEnumerable。您在找这个吗
IEnumerable<string> newList = listSelectedItems.ToList();
IEnumerable newList=listSelectedItems.ToList();
IEnumerable是一个接口,因此您不能实例化它,您需要它的实现,例如List
IEnumerable<string> newList = new List<string>(listSelectedItems);
IEnumerable newList=新列表(listSelectedItems);
在您的案例中,设置
newList=listSelectedItems
意味着newList
将只是对listSelectedItems
的引用,因此如果基础对象发生更改,newList
将引用更改后的对象。我没有尝试过这个,但我认为这也会起作用,答案是X。