C#中遍历hashtable 是不是随机访问的?

来源:百度知道 编辑:UC知道 时间:2024/06/30 14:12:17
C#中,用foreach()遍历hashtable中的元素 是不是随机访问的?

hashtable中的数据存储位置是根据计算得到的,一般的方法是通过除以一个很大的素数取模 这个数就是他所在的位置,如果同时有两个数命中一个位置,就在这个位置上建立链表存储, 这样A B 两个数经过计算后就不一定是A在前B在后了
而Enumerable方法中是根据地址从小到大的遍历方式查询,就出现了foreach hashtable的数据"随机"的现象

必然不是啊....
你可以参考下FCL(Framework Class Library)的源代码..
其中有IEnumerable接口的GetEnumerator方法的实现.

应该是根据索引

不是