黄聪:C#使用能够foreach对hashtable、List遍历时“集合已修改;可能无法执行枚举操作。”错误
2013-12-06 13:57
691 查看
解决办法:使用for循环,而不是foreach循环
例如:
原因:
1、hashtable存放你放入的值的时候,不是按照你存放顺序放的
所以当你用foreach遍历的时候,就不能保证遍历出来的顺序和你原来存放进去的顺序是一致的。
2、msdn的解释:foreach 语句是对枚举数的包装,它只允许从集合中读取,不允许写入集合。也就是,不能在foreach里遍历的时侯把它的元素进行删除或增加的操作的
例如:
ArrayList akeys=new ArrayList(_transmit_tb.Keys); for(int p=akeys.Count-1;p> -1;p--) { _transmit_tb.Remove(akeys[p]); }
原因:
1、hashtable存放你放入的值的时候,不是按照你存放顺序放的
所以当你用foreach遍历的时候,就不能保证遍历出来的顺序和你原来存放进去的顺序是一致的。
2、msdn的解释:foreach 语句是对枚举数的包装,它只允许从集合中读取,不允许写入集合。也就是,不能在foreach里遍历的时侯把它的元素进行删除或增加的操作的
相关文章推荐
- 黄聪:C#使用能够foreach对hashtable、List遍历时“集合已修改;可能无法执行枚举操作。”错误
- C#中foreach List循环操作出现“集合已修改;可能无法执行枚举操作”错误
- C#使用List出现“集合已修改;可能无法执行枚举操作”错误的解决办法
- C#中出现“集合已修改;可能无法执行枚举操作”错误 foreach list.Remove()
- .net使用foreach时发生错误:集合已修改;可能无法执行枚举操作
- C# 集合类Dictionary的遍历和修改(防止错误:集合已修改;可能无法执行枚举操作。)
- 怎么回事儿?C#错误:集合已修改;枚举操作可能无法执行。
- 集合已修改;枚举操作可能无法执行。使用foreach 循环删除DataRow的时候的问题! 该死的AcceptChanges() Row.elete() Remove(Row)使用不同。
- for遍历Dictionary字典 解决foreach修改字典报集合已修改:可能无法执行枚举操作
- 错误记录--关于foreach,集合已修改;可能无法执行枚举操作
- C#中foreach出现“集合已修改 可能无法执行枚举操作”的解决方法
- c#“集合已修改;可能无法执行枚举操作”
- NET 集合已修改 可能无法执行枚举操作 C#
- C# 如何避免异常”集合已修改;可能无法执行枚举操作。“
- C# 集合已修改;可能无法执行枚举操作
- C# 集合已修改;可能无法执行枚举操作
- 集合已修改;可能无法执行枚举操作 for 与foreach
- C# 集合已修改;可能无法执行枚举操作
- Dictionary的错误“集合已修改;可能无法执行枚举操作。”
- C# 集合已修改 可能无法执行枚举操作 zz