如果要遍历hashtable可以通过GetEnumerator()进行迭代遍历,但是由于hashtable的数据在不断变化,在遍历过程中就可能报错,最好的办法就是先复制一个新的HashTable,然后再遍历,我没有找到完整复制的办法,但HashTable提供了一个clone,浅表复制,基本也可以解决问题。
Hashtable ht = (Hashtable)sourceHT.Clone(); var enums = ht.Values.GetEnumerator(); while(enums.MoveNext()) { //处理代码 }
这种方式遍历HashTable,就算数据修改了,也不会报错