Gar*_*ama 0 c# collections foreach
我通过字典枚举并创建一个要添加到ListView的项目.但是,特别是一行导致此错误:
收集被修改; 枚举操作可能无法执行.
foreach (KeyValuePair<string, bool> s in test.Value.Properties)
{
ListViewItem item = new ListViewItem();
item.Text = String.Format("{0}", s.Key);
if (s.Value) { item.Checked = true; } // the problem line
listView2.Items.Add(item);
}
Run Code Online (Sandbox Code Playgroud)
我假设设置item.Text的原因是因为我没有修改原始值,因为它正在创建一个新字符串.如果我改变item.Checked = true来创建一个新的布尔值,它工作正常但布尔值总是默认为false,这不是我想要的.
我该如何解决这个问题?
另外,我是不是应该尝试修改foreach中的任何集合数据?我原本以为这个问题是因为我正在修改我正在循环的集合数据,但这似乎是ListViewItemCollection的一个问题,我没有循环遍历.
仅当您修改要枚举的集合时,才会引发此错误.
我在代码中看不到类似的东西,所以一定有其他问题.
我只能猜测,但也许,你test.Value.Properties在一个事件中修改,当你添加一个新项目时listView2?
| 归档时间: |
|
| 查看次数: |
598 次 |
| 最近记录: |