Tôi đang cố gắng xây dựng một biểu đồ hình tròn từ một từ điển. Trước khi tôi hiển thị biểu đồ hình tròn, tôi muốn thu dọn dữ liệu. Tôi đang loại bỏ bất kỳ lát bánh nào nhỏ hơn 5% chiếc bánh và đặt chúng vào lát bánh "Khác". Tuy nhiên tôi đang nhận được một Collection was modified; enumeration operation may not execute
ngoại lệ trong thời gian chạy.
Tôi hiểu lý do tại sao bạn không thể thêm hoặc xóa các mục khỏi từ điển trong khi lặp lại chúng. Tuy nhiên tôi không hiểu tại sao bạn không thể thay đổi giá trị cho khóa hiện có trong vòng lặp foreach.
Bất kỳ đề xuất nào: sửa mã của tôi, sẽ được đánh giá cao.
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);