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