首先我们来介绍一下C#中的引用类型。引用类型是指,变量所存储的值是一个引用地址,该地址指向一个实际存储数据的内存区域。
在C#中,List是一种常用的集合类型,它是引用类型。当我们需要对List进行克隆操作时,就需要了解三种方法:
1. 循环遍历
循环遍历是最基本的方法,我们可以使用foreach循环或for循环对List中的每一个元素进行复制,再添加到一个新的List中。
下面是示例代码:
List<int> oldList = new List<int> { 1, 2, 3, 4, 5 };
List<int> newList = new List<int>();
foreach (int item in oldList)
{
newList.Add(item);
}
Console.WriteLine($"oldList: [{string.Join(", ", oldList)}]");
Console.WriteLine($"newList: [{string.Join(", ", newList)}]");
输出结果:
oldList: [1, 2, 3, 4, 5]
newList: [1, 2, 3, 4, 5]
2. 使用ToList方法
List类提供了一个ToList方法,可以通过它克隆整个List。
下面是示例代码:
List<string> oldList = new List<string> { "apple", "banana", "orange", "pear" };
List<string> newList = oldList.ToList();
Console.WriteLine($"oldList: [{string.Join(", ", oldList)}]");
Console.WriteLine($"newList: [{string.Join(", ", newList)}]");
输出结果:
oldList: [apple, banana, orange, pear]
newList: [apple, banana, orange, pear]
3. 使用LINQ的Select方法
我们可以使用LINQ的Select方法,实现List的克隆。Select方法可以将List中的每一个元素,通过一个委托方法转换为新的元素。当转换的方法是一个返回原对象的方法时,即可实现List的克隆。
下面是示例代码:
List<Person> oldList = new List<Person>
{
new Person { Name = "张三", Age = 18 },
new Person { Name = "李四", Age = 20 },
new Person { Name = "王五", Age = 22 }
};
List<Person> newList = oldList.Select(p => p).ToList();
Console.WriteLine($"oldList: [{string.Join(", ", oldList.Select(p => $"{p.Name}:{p.Age}"))}]");
Console.WriteLine($"newList: [{string.Join(", ", newList.Select(p => $"{p.Name}:{p.Age}"))}]");
输出结果:
oldList: [张三:18, 李四:20, 王五:22]
newList: [张三:18, 李四:20, 王五:22]
以上就是C#中List引用类型克隆的3种方法的攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# List引用类型克隆的3种方法 - Python技术站