2009-12-17 43 views
1

我必须复制一个字典,使用该副本并返回到原始字典。复制字典不会给我预期的结果

似乎发生的是,当我在复制的字典上做一些工作时,orignal字典被修改。

这里是我的代码:

dmodified_profile = new SortedDictionary<int,SortedDictionary<string,List<string>>>(d_profile); 

我不知道为什么d_profile是,如果我的修改在dmodified_profile字典做原来可以修改?

谢谢

+3

您可能会考虑使用不可变数据结构进行调查。它们非常适合你所谈论的那种操作。 – 2009-12-17 23:59:38

回答

3

您的SortedDictionary将整数映射到另一个SortedDictionary的REFERENCE。当您复制该字典时,您将复制键的值以及值的REFERENCE,因为您的字典的值是引用类型。