作者trust2065 (QQman)
看板Visual_Basic
標題[.NET] Foreach裡面用到Remove
時間Wed Oct 3 16:59:51 2012
請輸入專案類型(網站專案或者應用程式專案):應用程式
請問用For Each的時候是否不能修改集合內的內容呢?
錯誤訊息給"集合已修改;列舉工作可能尚未執行"
Code:
Dim list_coin as new list(Picturebox)
For Each coin as Picturebox in list_coin
if (xxx)
list_coin.remove(coin)
end if
Next
因為list_coin裡的數量是會一直變的,且For Each是每秒執行一次
不能刪除的話要怎麼做呢..?
有想過在裡面紀錄符合條件的index
結束For Each再根據 index刪掉..
但總覺得多此一舉..orz
而且每次刪掉的可能不只一個
越弄越複雜的感覺
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.36.104.206
1F:→ MOONRAKER:List不是有.Find()好用 找到再remove不就結了 10/03 17:37
2F:→ MOONRAKER:還有.contains()咧 10/03 17:39
3F:→ s3748679:既然是刪除符合條件的元素,那乾脆用不符合條件重建一個 10/03 19:02
4F:→ s3748679:list 10/03 19:02
6F:→ trust2065:謝謝樓上,原來這樣就可以拉! 10/04 00:39
7F:→ trust2065:也謝謝一樓,因為看不懂msdn predicate的解釋... 10/04 00:40
8F:→ trust2065:也看不懂.之後的提示.. 方才有找到Find的範例了~ 10/04 00:42