Avatar ·

如何在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 {