你好!我坚持一些东西,我真的需要帮助:( 所以我有一本字典可能重复:
What is the best way to clone/deep copy a .NET generic Dictionary<string, T>?
Dictionary<string, MyClass> dict = new Dictionary<string, MyClass>();
其中MyClass是一些具有属性,方法等的类。当我尝试将此词典复制到另一个词典时,例如:
Dictionary<string, MyClass> newDict = new Dictionary<string, MyClass>(dict);
似乎数据是通过引用复制的,当我尝试更新newDict中的任何MyClass对象时,数据会在dict中更新。那么如何将一个字典复制到另一个字典中呢?当我尝试更新副本中的数据时,原始数据保持不变?
提前致谢:) 祝你有愉快的一天:)
答案 0 :(得分:3)
您正在寻找“深层复制品”。 See Jon Skeet's answer here
答案 1 :(得分:0)
您必须实现MyClass.Clone()
函数,该函数会创建实例的副本。然后遍历源集合中的所有项目,并将克隆添加到目标集合中。
答案 2 :(得分:-2)
不要尝试重新发明轮子,使用已创建的东西。对于此类情况,我使用BLTookit
,http://bltoolkit.net/Doc.ObjectToObject.ashx或此AutoMapper
http://automapper.codeplex.com/。