Как изменить TValue в Dictionary в цикле foreach? - C#

Узнай цену своей работы

Формулировка задачи:

есть словарь с буквами. есть строка текста. нужно подсчитать количество букв из словаря в строке текста. сделал словарь:
Листинг программы
  1. Dictionary<char, double> array = new Dictionary<char, double>() {'a',0};
для подсчета сделал два цикла.
Листинг программы
  1. foreach (var voc in array)
  2. {
  3. double count = 0;
  4. foreach (var st in str)
  5. {
  6. if (voc.Key==st)
  7. {
  8. count++;
  9. }
  10. }
  11. //после подсчета количества букв в строке меняю значение возле буквы на количество ее повторений.
  12. array[voc.Key]=count;
  13. }
ошибка System.InvalidOperationException Коллекция была изменена; невозможно выполнить операцию перечисления.

Решение задачи: «Как изменить TValue в Dictionary в цикле foreach?»

textual
Листинг программы
  1. var dict = str.GroupBy(x => x).Where(x=> (x.Key >= 'a' && x.Key <= 'z') || (x.Key >= 'A' && x.Key <= 'Z'))
  2.      .OrderBy(x=>x.Count())
  3.      .ToDictionary(x => x.Key, x=> x.Count());
  4.  
  5. foreach (var i in dict)
  6.      Console.WriteLine("{0} = {1}",i.Key,i.Value);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы