Я намагаюся створити кругову діаграму зі словника. Перш ніж я покажу кругову діаграму, я хочу впорядкувати дані. Я виймаю будь-які шматочки пирога, які становили б менше 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);