2010-08-10 108 views
1

尝试运行此方法时出现错误:无法从ListBox中删除项目

此枚举器绑定的列表已被修改。枚举器只能在列表不更改时使用。

foreach (var item in lstPhotos.SelectedItems) 
{ 
    lstPhotos.Items.Remove(item); 
} 

如何删除所选项目?

+0

你可能希望看到http://stackoverflow.com/questions/380451/how-do-i-do-i-loop-through-items-in-a-list-box-然后删除那个项目 – nawfal 2013-06-05 13:53:21

回答

4
while(lstPhotos.SelectedItems.Count != 0) 
{ 
    lstPhotos.Items.Remove(lstPhotos.SelectedItems[0]); 
} 
2

foreach循环不允许您修改正在枚举的集合。如果您需要修改集合,请改用for循环。

编辑:

我离开我原来的答复之上,但在这个编码可以明显看到,while循环是因为selectedItems属性的动态长度更适合于这个问题。

while(lstPhotos.SelectedItems.Length > 0) 
{ 
    lstPhotos.Items.Remove(lstPhotos.SelectedItems[0]; 
} 
+0

我怎样才能访问每个单独的项目呢? – 2010-08-10 02:49:32

+0

正如我所说的,使用for循环 – 2010-08-10 02:51:13

+0

while循环可能也适合。是否有像“SelectedItem”这样的属性?你知道,这一切都取决于你正在使用的特定集合/库。 – 2010-08-10 02:52:40