【发布时间】:2010-12-20 02:23:24
【问题描述】:
我注意到在 c# 中有一个 Lists 的方法: CopyTo -> 复制到数组,有没有更好的方法复制到新列表?问题是,我想按值检索列表以便能够在显示之前删除项目,我不想修改原始列表,这似乎也不容易实现,有什么想法吗?
【问题讨论】:
我注意到在 c# 中有一个 Lists 的方法: CopyTo -> 复制到数组,有没有更好的方法复制到新列表?问题是,我想按值检索列表以便能够在显示之前删除项目,我不想修改原始列表,这似乎也不容易实现,有什么想法吗?
【问题讨论】:
List<MyType> copy = new List<MyType>(original);
【讨论】:
我想按值检索列表,以便能够在显示它们之前删除它们,
var newlist = oldList.Where(<specify condition here>).ToList();
【讨论】:
如果您使用的是 .NET 3.5,则生成的数组可以调用 ToList()。
【讨论】:
只需创建一个新的List 并使用适当的构造函数:
IList<Obj> newList = new List<Obj>(oldList);
【讨论】:
我认为这会奏效。将列表传递给新列表的构造函数。
List<string> list1 = new List<string>();
List<string> list2 = new List<string>(list1);
【讨论】:
您是否尝试过克隆 (Clone()) 每个项目并将克隆添加到新集合中?
【讨论】:
如果你有一个参考列表,这个列表
List<Object> list2 = new List<Object>(list1);
不工作。
这应该可以解决您的问题:
【讨论】: