Как изменить 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д