遍历ArrayList易犯错误

场景:

将ArrayList中符合条件的记录删掉,第一时间写出的程序如下:

None.gif             foreach ( string aStr  in  aList)
ExpandedBlockStart.gif             {
InBlock.gif                if (aStr.Equals(textBox1.Text))
ExpandedSubBlockStart.gif                {
InBlock.gif                    aList.Remove(aStr);
ExpandedSubBlockEnd.gif                }

ExpandedBlockEnd.gif            }

似乎没有错误,编译也通过的,但运行时如果真的遇到符合条件的数据,则会抛出错误:

arrayList1.JPG

简单的解决办法是如何呢?这时用Clone方法最好不过了,用如下代码:

None.gif            ArrayList bList = (ArrayList)aList.Clone();
None.gif             foreach ( string aStr  in  bList)
ExpandedBlockStart.gif             {
InBlock.gif                if (aStr.Equals(textBox1.Text))
ExpandedSubBlockStart.gif                {
InBlock.gif                    aList.Remove(aStr);
ExpandedSubBlockEnd.gif                }

ExpandedBlockEnd.gif            }

None.gif

似乎集合类型都会有这样的问题的。


本文转自风前絮~~博客园博客,原文链接:http://www.cnblogs.com/windsails/archive/2004/09/08/41039.html,如需转载请自行联系原作者

你可能感兴趣的:(遍历ArrayList易犯错误)