如何遍历列表框中的项目,然后删除那些项目?

尝试遍历列表框然后删除项目时,出现以下错误。


此枚举器绑定到的列表已被修改。如果列表不变,则只能使用枚举数。


foreach (string s in listBox1.Items)

{

    MessageBox.Show(s);

    //do stuff with (s);

    listBox1.Items.Remove(s);

}

如何删除该项目并仍然在其中循环浏览?


慕虎7371278
浏览 336回答 3
3回答

吃鸡游戏

您要删除所有项目吗?如果是这样,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();}

达令说

这是我的解决方案,无需后退且没有临时列表while (listBox1.Items.Count > 0){  string s = listBox1.Items[0] as string;  // do something with s  listBox1.Items.RemoveAt(0);}
打开App,查看更多内容
随时随地看视频慕课网APP