克隆C#中的列表

可能重复:
如何在C#中克隆通用列表?

嘿,我一直在尝试克隆一个列表,到目前为止,我发现函数addRange但我很确定它不克隆列表中的对象,但做一个浅的副本列表我想知道如何克隆列表谢谢提前。

要克隆列表,必须克隆每个项目。 如果存在项类的Clone()的有用实现,这是一个使用LINQ的单行:

List lstCloned = lstOriginal.Select(i => i.Clone()).ToList(); 

AddRange,更一般地说,对list中包含的对象的所有操作都只克隆对这些对象的引用。 要自己克隆对象,您应该在对象级别自己处理副本。

你是什​​么意思“克隆名单”? 克隆对象? 您可以在每个对象上显式实现它(例如,通过实现ICloneable接口),或使用Reflection进行一般实现。

寻找“ICloneable”,“深度克隆”或“深层复制”以了解有关获得预期结果的不同方法的更多信息。

您需要解析列表并为每个项目创建一个新对象,然后新项目将其添加到新列表中。