尝试遍历列表框然后删除项目时,出现以下错误。此枚举器绑定到的列表已被修改。如果列表不变,则只能使用枚举数。foreach (string s in listBox1.Items){ MessageBox.Show(s); //do stuff with (s); listBox1.Items.Remove(s);}如何删除该项目并仍然在其中循环浏览?
3 回答
吃鸡游戏
TA贡献1829条经验 获得超7个赞
您要删除所有项目吗?如果是这样,foreach请先执行此操作,然后再使用Items.Clear()删除所有这些。
否则,也许由索引器向后循环:
listBox1.BeginUpdate();
try {
for(int i = listBox1.Items.Count - 1; i >= 0 ; i--) {
// do with listBox1.Items[i]
listBox1.Items.RemoveAt(i);
}
} finally {
listBox1.EndUpdate();
}
达令说
TA贡献1821条经验 获得超6个赞
这是我的解决方案,无需后退且没有临时列表
while (listBox1.Items.Count > 0)
{
string s = listBox1.Items[0] as string;
// do something with s
listBox1.Items.RemoveAt(0);
}
- 3 回答
- 0 关注
- 335 浏览
添加回答
举报
0/150
提交
取消