社区
C#
帖子详情
在使用HashTable过程中,枚举已更改是什么意思?
Sanmao0126
2005-04-12 09:34:37
如图:
在遍历hashtable的结果中,报错误,显示“集合已被修改,枚举可能不被执行”
http://www.mobiusclub.com/aa.JPG
在程序运行中,这个hashtable肯定是要修改的,但是怎么会报这个错误呢?
...全文
242
5
打赏
收藏
在使用HashTable过程中,枚举已更改是什么意思?
如图: 在遍历hashtable的结果中,报错误,显示“集合已被修改,枚举可能不被执行” http://www.mobiusclub.com/aa.JPG 在程序运行中,这个hashtable肯定是要修改的,但是怎么会报这个错误呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Sanmao0126
2005-07-17
打赏
举报
回复
多谢!
huangya0
2005-04-12
打赏
举报
回复
南航牛的话是正确的,我以前也遇到相关问题
但我补充一点,就是也不能在foreach里遍历的时侯把它的元素进行删除或增加的操作的
niunj
2005-04-12
打赏
举报
回复
hashtable存放你放入的值的时候 不是按照你存放顺序放的
所以当你用foreach遍历的时候 就不能保证遍历出来的顺序和你原来存放进去的顺序是一致的
lanxe
2005-04-12
打赏
举报
回复
自己搞定的问题,学到的东西最多!
Sanmao0126
2005-04-12
打赏
举报
回复
自己解决了,这样就可以了:
ArrayList akeys=new ArrayList(List_sos.Keys);
for(int p=akeys.Count-1;p>-1;p--)
{
((Share)List_sos[akeys[p]]).RemoveClient(this);
}
EnumHelper
枚举
操作类
/** 1. 功能:
枚举
操作类,
枚举
类型创建,转换 * 2. 作者:杨磊 * 3. 创建日期:2008-1-30 * 4. 最后修改日期:2008-11-10 **/ using System; using System.Collections.Generic; using System.Text; using System.Collections; /// ///
枚举
操作类,
枚举
类型创建,转换 /// public class EnumHelper { #region 通过字符串获取
枚举
成员实例 /// /// 通过字符串获取
枚举
成员实例 /// ///
枚举
名,比如Enum1 ///
枚举
成员的常量名或常量值, /// 范例:Enum1
枚举
有两个成员A=0,B=1,则传入"A"或"0"获取 Enum1.A
枚举
类型 public static T GetInstance(string member) { return CommFun.ConvertTo(Enum.Parse(typeof(T), member, true)); } #endregion #region 获取
枚举
成员名称和成员值的键值对集合 /// /// 获取
枚举
成员名称和成员值的键值对集合 /// ///
枚举
名,比如Enum1 public static
Hashtable
GetMemberKeyValue() { //创建哈希表
Hashtable
ht = new
Hashtable
(); //获取
枚举
所有成员名称 string[] memberNames = GetMemberNames(); //遍历
枚举
成员 foreach (string memberName in memberNames) { ht.Add(memberName, GetMemberValue(memberName)); } //返回哈希表 return ht; } #endregion #region 获取
枚举
所有成员名称 /// /// 获取
枚举
所有成员名称 /// ///
枚举
名,比如Enum1 public static string[] GetMemberNames() { return Enum.GetNames(typeof(T)); } #endregion #region 获取
枚举
成员的名称 /// /// 获取
枚举
成员的名称 /// ///
枚举
名,比如Enum1 ///
枚举
成员实例或成员值, /// 范例:Enum1
枚举
有两个成员A=0,B=1,则传入Enum1.A或0,获取成员名称"A" public static string GetMemberName(object member) { //转成基础类型的成员值 Type underlyingType = GetUnderlyingType(typeof(T)); object memberValue = CommFun.ConvertTo(member,underlyingType); //获取
枚举
成员的名称 return Enum.GetName(typeof(T), memberValue); } #endregion #re
C#
使用
foreach遍历
hashtable
集合,并同时操作集合时,报错:集合已修改;可能无法执行
枚举
操作
报错如下: 问题解析: 1、
hashtable
存放键值的时候,不是按照你存放顺序放的。所以当你用foreach遍历的时候,就不能保证遍历出来的顺序和你原来存放进去的顺序是一致的。 2、foreach语句是对
枚举
数的包装,它只允许从集合
中
读取,不允许写入集合。也就是,不能在foreach里遍历的时侯把它的元素进行删除或增加、修改的操作 解决方法:
使用
for循环倒序遍历,示例代码如下:...
Java
中
的HashMap和
Hashtable
有什么区别?
Java
中
的 HashMap 和
Hashtable
有什么区别?哪个对非线程应用程序更有效?
集合已修改;可能无法执行
枚举
操作。
问题描述:在用foreach遍历
hashtable
的时候,弹出“集合已修改;可能无法执行
枚举
操作。” 问题代码: private void Check(int TimeOut) //这是一个存活检查线程,为了把连接失效的主机剔除 { DateTime t = DateTime.Now;//取出当前的时间 ...
C#
中
使用
哈希表(
HashTable
)的详细用法
要遍历哈希表
中
的所有键值对,可以
使用
哈希表的GetEnumerator方法获取一个
枚举
器,并
使用
while循环遍历。哈希表(
HashTable
)是C#
中
常用的数据结构之一,它提供了一种有效的存储和访问键值对的方式。在本文
中
,我们将详细介绍C#
中
哈希表的用法,并提供相应的源代码示例。在C#
中
,我们可以
使用
HashTable
类的构造函数来创建一个新的哈希表实例。如果要从哈希表
中
移除特定的键值对,可以
使用
哈希表的Remove方法。要获取哈希表
中
特定键的值,我们可以
使用
索引器(indexer)或
使用
哈希表的。
C#
110,580
社区成员
642,559
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章