作者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