📜  列表克隆 - C# (1)

📅  最后修改于: 2023-12-03 15:22:39.480000             🧑  作者: Mango

列表克隆 - C#

实现一个列表的克隆功能,是 C# 程序员在日常开发中经常会遇到的问题。本文将介绍如何通过不同的方式来实现 C# 列表的克隆,以供程序员参考。

1. 使用 ForEach() 方法进行克隆
List<int> sourceList = new List<int>() { 1, 2, 3 };
List<int> clonedList = new List<int>();

sourceList.ForEach(item => clonedList.Add(item));

上述代码使用了 C# 中的 ForEach() 方法,对原列表中的每个元素进行迭代,并将其添加到新的列表中,实现了列表的克隆。

2. 使用 AddRange() 方法进行克隆
List<int> sourceList = new List<int>() { 1, 2, 3 };
List<int> clonedList = new List<int>();

clonedList.AddRange(sourceList);

上述代码使用了 C# 中的 AddRange() 方法,将原列表中的所有元素添加到新的列表中,实现了列表的克隆。

3. 使用 ToList() 方法进行克隆
List<int> sourceList = new List<int>() { 1, 2, 3 };
List<int> clonedList = sourceList.ToList();

上述代码使用了 C# 中的 ToList() 方法,将原列表中的所有元素添加到新的列表中,实现了列表的克隆。

4. 使用序列化和反序列化进行克隆
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# 中实现列表克隆的四种方式,对于程序员来说,要根据具体情况选用合适的方式进行克隆,以保证程序的正确性和高效性。