深度复制用户定义的类列表

时间:2015-08-25 12:49:55

标签: c# list inheritance copy

我有一个以下类型的列表

public class Class1
{
    public string str1 { get; set; }
    public string str2 { get; set; }
    public int int1 { get; set; }
    public double dbl1{get;set;}
    public List<Class2> cls2 { get; set; }
    public List<string> str3 { get; set; }

}

其中Class 2也是用户定义的类,如:

public class Class2
{
    public string str4{ get; set; }
    public Class3 cls2 { get; set; }
}

其中Class3也是另一个用户定义的类。 我需要将List<Class1>复制到此类型的另一个列表,而不引用第一个列表。

我使用了以下方法,但没有成功。

  1. .CopyTo()Class1[]数组,然后是.ToList()但这包含参考
  2. .ToList()但这包含参考文献
  3. 我使用了可序列化和反序列化的方法,但该类无法序列化。

2 个答案:

答案 0 :(得分:0)

您应该使用write一个使用序列化的泛型方法,这样您就可以轻松地实现对具有良好可维护性的复杂对象的深度克隆。

参考: How do you do a deep copy of an object in .NET (C# specifically)?

答案 1 :(得分:0)

我使用NewtonSoft.Json包中的序列化和反序列化方法,效果很好。