📅  最后修改于: 2023-12-03 15:22:39.480000             🧑  作者: Mango
实现一个列表的克隆功能,是 C# 程序员在日常开发中经常会遇到的问题。本文将介绍如何通过不同的方式来实现 C# 列表的克隆,以供程序员参考。
List<int> sourceList = new List<int>() { 1, 2, 3 };
List<int> clonedList = new List<int>();
sourceList.ForEach(item => clonedList.Add(item));
上述代码使用了 C# 中的 ForEach() 方法,对原列表中的每个元素进行迭代,并将其添加到新的列表中,实现了列表的克隆。
List<int> sourceList = new List<int>() { 1, 2, 3 };
List<int> clonedList = new List<int>();
clonedList.AddRange(sourceList);
上述代码使用了 C# 中的 AddRange() 方法,将原列表中的所有元素添加到新的列表中,实现了列表的克隆。
List<int> sourceList = new List<int>() { 1, 2, 3 };
List<int> clonedList = sourceList.ToList();
上述代码使用了 C# 中的 ToList() 方法,将原列表中的所有元素添加到新的列表中,实现了列表的克隆。
public static T DeepClone<T>(T obj)
{
using(var ms=new MemoryStream())
{
BinaryFormatter formatter=new BinaryFormatter();
formatter.Serialize(ms,obj);
ms.Seek(0,SeekOrigin.Begin);
return (T)formatter.Deserialize(ms);
}
}
List<int> sourceList = new List<int>() { 1, 2, 3 };
List<int> clonedList = DeepClone(sourceList);
上述代码使用了 C# 中的序列化和反序列化,将原列表进行序列化后再反序列化到新的列表中,实现了列表的克隆。需要注意的是,需要确保要克隆的类型是可序列化的。
本文介绍了 C# 中实现列表克隆的四种方式,对于程序员来说,要根据具体情况选用合适的方式进行克隆,以保证程序的正确性和高效性。