Я пытаюсь построить круговую диаграмму из словаря. Прежде чем отображать круговую диаграмму, я хочу убрать данные. Я удаляю любые кусочки пирога, которые будут меньше 5% пирога и помещают их в "Другой" кусочек пирога. Однако во время выполнения я получаю исключение Collection was modified; enumeration operation may not execute
.
Я понимаю, почему вы не можете добавлять или удалять элементы из словаря, итерации по ним. Однако я не понимаю, почему вы не можете просто изменить значение существующего ключа в цикле foreach.
Любые предложения re: исправление моего кода будут оценены.
Dictionary<string, int> colStates = new Dictionary<string,int>();
// ...
// Some code to populate colStates dictionary
// ...
int OtherCount = 0;
foreach(string key in colStates.Keys)
{
double Percent = colStates[key] / TotalCount;
if (Percent < 0.05)
{
OtherCount += colStates[key];
colStates[key] = 0;
}
}
colStates.Add("Other", OtherCount);