Я четыре словаря, два являются (словарь в Словаре), объявление показано нижеКак сделать глубокую копию словаря в словаре в C#?
Dictionary<string, Dictionary<string, string>> dict_set = new Dictionary<string, Dictionary<string, string>>();
Dictionary<string, Dictionary<string, string>> dict_Reset = new Dictionary<string, Dictionary<string, string>>();
Dictionary<string, string> set_value = new Dictionary<string, string>();
Dictionary<string, string> Reset_value = new Dictionary<string, string>();
Я хочу первым добавить элементы в словаре set_vlaue и Reset_value. после добавления значений, я добавляю эти словари к другим двум словарям, как показано ниже.
dict_set.Add(condiName, set_value);
dict_Reset.Add(condiName, Reset_value);
set_value.Clear();
Reset_value.Clear();
значение становится добавлено, но после добавления set_value и reset_value словарей, я хочу, чтобы очистить эти два словаря set_value и reset_value, но возникает проблема, что когда set_value и reset_value очищаются данные из dict_set и dict_reset также очищается ..
может ли один помочь мне, чтобы как создать глубокую копию словарей, в этом случае ...
См. Ответ Джона Скита здесь http://stackoverflow.com/questions/139592/what-is-the-best-way-to-clone-deep-copy-a-net-generic-dictionarystring-t – keyboardP
@keyboardP на самом деле я хочу сделать глубокую копию словаря при выполнении ниже операции. dict_set.Add (condiName, set_value); dict_Reset.Add (condiName, Reset_value); один из них сделан, я хочу очистить set_value и reset_value .. чтобы новые значения могли быть добавлены. Но согласно вашему коду, если я делаю клонирование перед добавлением, один ключ будет иметь другие данные ключа. – Deadlock
@KeyboardP: одна проблема с ответом Скита заключается в том, что он выполняет копию «Clone» листьев, которая не гарантирует глубокое копирование. Автор здесь хочет глубокого, так что это не так точный дубликат. Все еще с ответом Скита, легко приклеить решение. – quetzalcoatl