我想复制一个对象列表,但是我一直得到对象之间的引用。
List<MyClass> copy = original;
当我改变复制列表中的值时,原始列表也会被修改。有没有一种方法来解决这个问题?
我想复制一个对象列表,但是我一直得到对象之间的引用。
List<MyClass> copy = original;
当我改变复制列表中的值时,原始列表也会被修改。有没有一种方法来解决这个问题?
你可以这样做:
List<MyClass> copy = original.ToList();
这将会对列表进行逐个元素的复制,而不是仅仅复制对于列表本身的引用。
List<MyClass> copy = original.Select(v => new MyClass(v)).ToList();
(假设MyClass
有一个"copy constructor"可以接受相同类别的实例,并返回该对象的"deep copy")。 - Sergey Kalinichenko