一个关于ArrayList的问题,所有分送上!!! 按理是不会这样的,但如果diamondEnumerator.Reset()抛出异常,而被外面的catch截住的话,就会这样了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你这个diamondEnumerator是什么我都不知道,我怎么知道为什么抛出异常?看看异常的描述或许会知道为什么吧。 enumerator在集合改变后遍历的结果应该保持不变,如果这个enumerator没有作特殊的处理,在集合改变后再继续遍历就会抛出异常 当前的遍历指向的那个节点已经被删除了,再reset的时候就出错了。 保证enumerator稳定的具体方法是:1. 得到enumerator时生成当前集合的一个拷贝,enumerator对这个拷贝做遍历,这样不论集合变化与否都没有问题。2. 在遍历时比较集合的版本,发现变化,即集合内容变化了,就抛出异常。这个情况发生时就是你所遇到的问题。 感谢ripper兄,虽然我知道你不会在意这个分数,但是我只能用它来表示谢意 :) 你喜欢玩sega的sonic啊 起的名字很有意思~ ;) 什么情况,大家来分析一下 在 System.InvalidOperationException 中第一次偶然出现的“System.dll”类型的异常 ASP.NET中的Global中使用Timer c#在图像上画方框、圆等区域 如何用程序生成dvd里面的IFO文件阿? 简单问题 : ASP 中如何获得 GridView 的行号 ????? 谁有 用C#写的QQ宠物源码? 有没工具可以查看数据库连接池里的每个连接 ? wpf flash 总在最前端显示的问题 求购C# WINDOWS FORM 程序,价格诱人~ 子窗体如何设置?怎么显示子窗体? 急得不得了:在C#中如何把字符串转换成数值型
看看异常的描述或许会知道为什么吧。
1. 得到enumerator时生成当前集合的一个拷贝,enumerator对这个拷贝做遍历,这样不论集合变化与否都没有问题。
2. 在遍历时比较集合的版本,发现变化,即集合内容变化了,就抛出异常。这个情况发生时就是你所遇到的问题。