http://community.csdn.net/Expert/topic/4980/4980338.xml?temp=.8422357
有50分...
这里再加50 ..问题如下..Dictionary 泛型类的默认的加载因子是多少啊?
是固定的值还是自动变化的(HashTable中初始化时是可以设加载因子的).还有..Dictionary 泛型类在初始化时如果把大小设为32....
系统内部会不会把大小改为37(比32大一点的素数)呢?还有用foreach时迭代时.
Hashtable输入的顺序是不确定..
而用Dictionary 确是先进先出...
 static void Main()
        {
            Dictionary<string, int> dir = new Dictionary<string, int>(100);
            for (int i = 0; i < 100; i++)
            {
                dir.Add(i.ToString(), i);
            }
            foreach (string dirs in dir.Keys)
            {
                Console.WriteLine(dirs);
            }
            Hashtable ht = new Hashtable(100);
            for (int i = 0; i < 100; i++)
            {
                ht.Add(i.ToString(), i);
            }
            foreach (string dirs in ht.Keys)
            {
                Console.WriteLine(dirs);
            }
}

解决方案 »

  1.   

    2.0还没用。应该可以用.NET Reflector反编译查看一下吧。
      

  2.   

    Hashtable 的加载因子确定元素与存储桶的最大比率。加载因子越小,平均查找速度越快,但消耗的内存也增加。默认的加载因子 1.0 通常提供速度和大小之间的最佳平衡。当创建 Hashtable 时,也可以指定其他加载因子。
    当向 Hashtable 添加元素时,Hashtable 的实际加载因子将增加。当实际加载因子达到此加载因子时,Hashtable 中存储桶的数目自动增加到大于当前 Hashtable 存储桶数两倍的最小质数。
    Hashtable 中的每个键对象必须提供其自己的哈希函数,可通过调用 GetHash 访问该函数。但是,可将任何实现 IHashCodeProvider 的对象传递到 Hashtable 构造函数,而且该哈希函数用于该表中的所有对象。
      

  3.   

    当向 Hashtable 添加元素时,Hashtable 的实际加载因子将增加。当实际加载因子达到指定的加载因子时,Hashtable 中存储桶的数目自动增加到大于当前 Hashtable 存储桶数两倍的最小质数。也就是说是65
      

  4.   

    反汇编了..的确会设为比当前质大的素数
    Dictionary 的默认加载因子不清楚