Bir sözlükten bir pasta grafik oluşturmaya çalışıyorum. Pasta grafiğini görüntülemeden önce verileri toplamak istiyorum. Pastanın% 5'inden daha az olan pasta dilimlerini kaldırıyorum ve bunları "Diğer" pasta dilimi içine koyuyorum. Ancak Collection was modified; enumeration operation may not execute
çalışma zamanında bir istisna alıyorum .
Neden bir yineleme yaparken sözlükten öğe ekleyemeyeceğinizi veya sözlükten öğe kaldıramayacağınızı anlıyorum. Ancak neden foreach döngüsü içinde varolan bir anahtarın değerini değiştiremeyeceğinizi anlamıyorum.
Herhangi bir öneri yeniden: kodumu sabitleme, mutluluk duyacağız.
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);