Sto cercando di costruire un grafico a torta da un dizionario. Prima di visualizzare il grafico a torta, desidero riordinare i dati. Sto rimuovendo tutte le sezioni di torta che sarebbero inferiori al 5% della torta e le inserirò in una sezione "Altro". Tuttavia sto ottenendo Collection was modified; enumeration operation may not execute
un'eccezione in fase di esecuzione.
Capisco perché non è possibile aggiungere o rimuovere elementi da un dizionario mentre si scorre su di essi. Tuttavia non capisco perché non puoi semplicemente modificare un valore per una chiave esistente all'interno del ciclo foreach.
Eventuali suggerimenti in merito: correzione del mio codice, sarebbero apprezzati.
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);