因为篇幅很短, 所以尝试全文字写法. 几分钟看完的文字也没必要用十几分钟写完是吧.
foreach 遍历 List 操作很方便, 这节省了部分 [] 取数据和下标计算的代码. 写起来很简洁. 但是如果是遍历删除的话, 你会遇到很经典的迭代器失效问题.
解决这个问题的常见思路是, 对容器 A 中需要删除的元素, 放入一个临时容器 B. 然后再次遍历这个容器 B, 将元素取出并在 A 中删除. 这么写缺点很多, 两次循环, 而且加入临时容器, 把代码搞得很难看.
其实遍历删除的同时, 防止 (或曰避免遇到) 迭代器失效的最简单方法是逆序遍历同时删除. 这种写法很经典, 就是 i-- 有些人看起来不习惯罢了.
来源: http://www.bubuko.com/infodetail-2695191.html