黄聪

论SEO对人类的重要性,请看我的博客:hcsem.com

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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

posted on 2013-12-06 13:57  黄聪  阅读(4250)  评论(0编辑  收藏  举报