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

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

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

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

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

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

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


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

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

9   голосов , оценка 3.778 из 5
Похожие ответы