按值复制字典

时间:2010-01-16 21:44:08

标签: c# dictionary

如何在c#

中按值复制Dictionary对象

3 个答案:

答案 0 :(得分:31)

在构造函数中创建一个新的Dictionary传递源字典(当然,如果它们是引用类型,这将不会复制字典中的对象):

var copied = new Dictionary<KeyType, ValueType>(originalDictionary);

答案 1 :(得分:5)

Using System.Linq;
Dictionary<int, string> dict2 = dict1.ToDictionary(k => k.Key, k => k.Value.ToString());

这将按值(而非参考)创建字典的相同副本,因此您可以在不更改另一个的情况下对其进行操作。

答案 2 :(得分:-1)

没有内在的方法可以做到这一点。你必须手动完成。

第一步是确定您希望副本配对的深度。您是否希望单独的Dictionary输入对象保持对公共密钥的引用&amp;值,或者你想要复制一切吗?如果是后者,他们需要实现ICloneable来创建通用方法。