Estoy tratando de construir un gráfico circular a partir de un diccionario. Antes de mostrar el gráfico circular, quiero ordenar los datos. Estoy eliminando cualquier rebanada de tarta que sería menos del 5% de la tarta y poniéndola en una rebanada de tarta "Otro". Sin embargo estoy obteniendo unCollection was modified; enumeration operation may not execute
excepción en tiempo de ejecución.
Entiendo por qué no puede agregar o eliminar elementos de un diccionario mientras itera sobre ellos. Sin embargo, no entiendo por qué no puede simplemente cambiar un valor para una clave existente dentro del ciclo foreach.
Cualquier sugerencia con respecto a: arreglar mi código, sería apreciada.
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);