如何在C#中克隆列表(List<T>):完整复制指南
大家好!我是C#新手,在处理列表时遇到了问题。我需要创建一个独立的列表副本,这样对一个副本的修改不会影响另一个。
这是我的代码:
```csharp
List originalList = new List { "apple", "banana", "cherry" };
List clonedList = originalList; // 简单赋值
// 修改克隆
clonedList.Add("date");
Console.WriteLine("Original: " + string.Join(", ", originalList)); // 输出:apple, banana, cherry, date
Console.WriteLine("Cloned: " + string.Join(", ", clonedList)); // 输出:apple, banana, cherry, date
```
如您所见,简单赋值时`originalList`和`clonedList`指向内存中的同一个对象。修改一个列表会自动改变另一个。
我尝试了`ToList()`方法,但对于引用类型的列表它也无济于事:
```csharp
public class Person
{
public string Name { get; set; }
}
List people = new List
{
new Person {