首页 / 问答 / C#/.NET/.NET Core应用程序编程中深度克隆/拷贝一个泛型字典的方式有哪些,哪种方式更好呢?

C#/.NET/.NET Core应用程序编程中深度克隆/拷贝一个泛型字典的方式有哪些,哪种方式更好呢?

.NET C# 克隆 泛型 .NET Core 2.54K 次浏览
0

在C#/.NET/.NET Core应用程序编程开发中,当前有一个泛型的字典Dictionary<string, T>,有哪些方式可以实现深度克隆或者拷贝这个泛型字典成一个新的字典实例呢,哪种方式更好呢?

回复 [×]
提交评论
请输入评论内容

3 个回答

  • 0

    使用LINQ的ToDictionary()静态扩展方法可以快速深度克隆/拷贝一个字典,如下:

    Rector的个人主页

    Rector

    2020-03-10 回答

    • 0

      如果要支持低版本的.NET(比如:.NET 2.0),可以使用实现ICloneable接口来处理,创建一个深度克隆/拷贝字典的方法,如下:

      完整示例如下:

      输出结果:

      注:此示例中字典的值类型为string,你也可以使用其他任意的实现了ICloneable接口的数据类型。
      比如:

      请自行实现Customer类中的Clone()方法。

      Rector的个人主页

      Rector

      2020-03-10 回答

      • 0

        使用序列化并反序列化的思路也可以实现,并且不需要额外地实现ICloneable接口,方法如下:

        注:需要在实例对象上指定[Serializable]的属性标记。

        Rector的个人主页

        Rector

        2020-03-10 回答

        我来回答