Подтвердить что ты не робот

Копировать словарь по значению

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

Ответ 3

Для этого нет встроенного метода. Вам нужно будет сделать это вручную.

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