Как изменить TValue в Dictionary в цикле foreach? - C#
Формулировка задачи:
есть словарь с буквами. есть строка текста. нужно подсчитать количество букв из словаря в строке текста.
сделал словарь:
для подсчета сделал два цикла.
ошибка System.InvalidOperationException Коллекция была изменена; невозможно выполнить операцию перечисления.
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; }
Решение задачи: «Как изменить 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д