我正在调查Dictionary<TKey, TValue>
背后的代码。有趣的是在private Insert
方法中,有一个bucket
似乎在预先大小的阵列中保留空插槽。在Insert
方法内部,代码检查桶中是否有剩余元素,并在必要时调整大小。添加的元素数量是质数的一个因子。此外,字典条目属性存储在带有散列码,键和值的结构中。是Dictionary <TKey,TValue>在后备存储中添加空元素吗?
我的问题:目的是什么?这样做是为了防止在足够的内存不可用时尝试将项目添加到字典对象?
注:我不想在这里粘贴任何代码,因为它需要反汇编才能读取。
阅读关于哈希表的实现。 – leppie 2010-10-24 00:02:46
@leppie,我会很高兴 - 得到几个链接? :) – IAbstract 2010-10-24 00:16:11