Скопировать словарь по значению - PullRequest
18 голосов
/ 17 января 2010

Как я могу скопировать объект Dictionary по значению в c #

Ответы [ 3 ]

31 голосов
/ 17 января 2010

Создать новый Dictionary, передав исходный словарь в конструктор (конечно, это не будет копировать объекты в словаре, если они являются ссылочными типами):

var copied = new Dictionary<KeyType, ValueType>(originalDictionary);
5 голосов
/ 15 сентября 2013
Using System.Linq;
Dictionary<int, string> dict2 = dict1.ToDictionary(k => k.Key, k => k.Value.ToString());

Это создаст идентичную копию словаря по значению (не ref), так что вы можете работать с одним без изменения другого.

0 голосов
/ 17 января 2010

Не существует встроенного метода для этого. Вам придется сделать это вручную.

Первый шаг - определить, насколько глубоко вы хотите скопировать копию. Вы хотите отдельный объект ввода словаря, содержащий ссылки на общие ключи и значения, или вы хотите, чтобы все было скопировано. Если последнее, им нужно будет реализовать ICloneable для создания метода общего назначения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...