Как изменить все значения в словаре <string, bool>? - PullRequest
6 голосов
/ 27 мая 2011

Итак, у меня есть Dictionary<string, bool>, и все, что я хочу сделать, это перебрать его и установить для всех значений значение false в словаре.Какой самый простой способ сделать это?

Я пробовал это:

foreach (string key in parameterDictionary.Keys)
    parameterDictionary[key] = false;

Однако я получаю сообщение об ошибке: «Сбор был изменен; операция перечисления может не выполняться.»

Есть ли лучший способ сделать это?

1 Ответ

17 голосов
/ 27 мая 2011

Просто измените источник перечисления на что-то, кроме словаря.

foreach (string key in parameterDictionary.Keys.ToList())
  parameterDictionary[key] = false;

Для .net 2.0

foreach (string key in new List<TKey>(parameterDictionary.Keys))
  parameterDictionary[key] = false;
...