【发布时间】:2012-11-25 08:00:32
【问题描述】:
我想在 C# 中将一个列表复制到另一个列表。问题是像copyto 这样的现有方法会从另一个列表创建一个新列表。但是,如果我对新列表进行一些更改,旧列表也会被更改。这是因为它们的引用类型行为。如果有任何方法(除了foreach 循环)从另一个不会引用同一个对象的列表中创建一个新列表
【问题讨论】:
-
这称为“深度克隆”。
-
是的,问题是深拷贝与浅拷贝。它实际上是编程语言中的一大堆蠕虫。有标准的克隆方法,但它们在浅层与深层方面的实现方式各不相同,并且从子类到子类相对不一致。我怀疑你最好使用 for 循环,除非你确信集合实现是你的。
标签: c#