Я пытаюсь построить круговую диаграмму из словаря. Прежде чем отобразить круговую диаграмму, я хочу привести в порядок данные. Я удаляю любые кусочки пирога, которые будут составлять менее 5% от пирога, и помещаю их в «другой» кусок пирога. Однако я получаю Collection was modified; enumeration operation may not execute
исключение во время выполнения.
Я понимаю, почему вы не можете добавлять или удалять элементы из словаря, просматривая их. Однако я не понимаю, почему вы не можете просто изменить значение для существующего ключа в цикле foreach.
Любые предложения по исправлению моего кода, будут оценены.
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);