[.NET] Foreach裡面用到Remove

看板Visual_Basic作者 (QQman)時間13年前 (2012/10/03 16:59), 編輯推噓0(008)
留言8則, 3人參與, 最新討論串1/1
請輸入專案類型(網站專案或者應用程式專案):應用程式 請問用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

10/03 17:37, , 1F
List不是有.Find()好用 找到再remove不就結了
10/03 17:37, 1F

10/03 17:39, , 2F
還有.contains()咧
10/03 17:39, 2F

10/03 19:02, , 3F
既然是刪除符合條件的元素,那乾脆用不符合條件重建一個
10/03 19:02, 3F

10/03 19:02, , 4F
list
10/03 19:02, 4F

10/03 19:25, , 5F

10/04 00:39, , 6F
謝謝樓上,原來這樣就可以拉!
10/04 00:39, 6F

10/04 00:40, , 7F
也謝謝一樓,因為看不懂msdn predicate的解釋...
10/04 00:40, 7F

10/04 00:42, , 8F
也看不懂.之後的提示.. 方才有找到Find的範例了~
10/04 00:42, 8F
文章代碼(AID): #1GQ_w9yS (Visual_Basic)