C#使用能够foreach对hashtable、List遍历时“集合已修改;可能无法执行枚举操作。”错误

简介:

解决办法:使用for循环,而不是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里遍历的时侯把它的元素进行删除或增加的操作的




本文转自黄聪博客园博客,原文链接http://www.cnblogs.com/huangcong/p/3461294.html,如需转载请自行联系原作者

相关文章
|
26天前
|
安全 C#
C# List基本用法
C# List基本用法
|
2月前
|
存储 SQL C#
C# 读取二维数组集合输出到Word预设表格
C# 读取二维数组集合输出到Word预设表格
|
2月前
|
存储 安全 C#
C#使用集合组织相关数据
C#使用集合组织相关数据
12 0
|
2月前
|
存储 安全 Java
Python教程第3章 | 集合(List列表、Tuple元组、Dict字典、Set)
Python 列表、无序列表、字典、元组增删改查基本用法和注意事项
51 1
|
2月前
|
存储 安全 Java
34.C#:listT泛型集合
34.C#:listT泛型集合
18 1
|
2月前
|
存储 C#
33.c#:hashtable集合
33.c#:hashtable集合
16 1
|
2月前
|
存储 安全 Java
32.C#:ArrayList集合
32.C#:ArrayList集合
16 1
|
2月前
|
存储 C++ 容器
list容器-大小操作讲解
list容器-大小操作讲解
16 0
|
2月前
|
存储 安全 Java
【Java】集合(一)单列集合List
【Java】集合(一)单列集合List
22 0
|
13天前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。