【发布时间】:2013-02-26 03:55:57
【问题描述】:
我想复制一个对象列表,但我不断获取对象之间的引用。
List<MyClass> copy = original;
当我更改副本列表中的值时,原始列表最终也会被修改。 有办法解决吗?
【问题讨论】:
标签: c# asp.net code-behind
我想复制一个对象列表,但我不断获取对象之间的引用。
List<MyClass> copy = original;
当我更改副本列表中的值时,原始列表最终也会被修改。 有办法解决吗?
【问题讨论】:
标签: c# asp.net code-behind
你可以这样做:
List<MyClass> copy = original.ToList();
这将创建列表的逐个元素副本,而不是复制对列表本身的引用。
【讨论】:
List<MyClass> copy = original.Select(v => new MyClass(v)).ToList();(假设MyClass有一个“拷贝构造函数”,它接受同一个类的一个实例并返回一个对象的“深拷贝”)。