Estou tentando criar um gráfico de pizza a partir de um dicionário. Antes de exibir o gráfico de pizza, quero arrumar os dados. Estou removendo as fatias de torta que seriam inferiores a 5% da torta e colocando-as em uma fatia de "Outros". No entanto, estou recebendo uma Collection was modified; enumeration operation may not execute
exceção em tempo de execução.
Entendo por que você não pode adicionar ou remover itens de um dicionário enquanto itera sobre eles. No entanto, não entendo por que você não pode simplesmente alterar um valor para uma chave existente no loop foreach.
Qualquer sugestão re: corrigir o meu código, seria 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);