当前位置导航:炫浪网>>网络学院>>网页制作>>ASP.NET教程

CLR系列:窥视HashTable

欢迎进入.NET社区论坛,与200万技术人员互动交流 >>进入

        哈希表(Hashtable)简述

        我想大家对Hashtable很熟悉,平时在工作中使用的也是比较多的,现在都是3.5了,Dictionary 的出现已经可以替代Hashtable,但是我还是想对这个Net框架使用较多的对象(举个例子:Net的CLR处理一个程序集的字符串就是采用HashTable存储在System Domain)讲解一下,因为很多新的技术都是建立在老的技术和思想上的。

        在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key/value键值对均为 object类型,所以Hashtable可以支持任何类型的key/value键值对.

        例子

        Hashtable ht = new Hashtable();
        for (int m = 0; m < 5; m++)
           ht.Add(new cuskey(m), m);
        if (ht.ContainsKey(new cuskey(3)))
           {
                Console.WriteLine("find!");
           }
           else
           {
                Console.WriteLine("can't find!");
            }
        ht.Clear();

        MyTest key1 = new MyTest(10);
        ht.Add(key1, "Key1");
        if (ht.ContainsKey(key1))
          {
                Console.WriteLine("Is key1 contained in hashtable? {0}", true);
           }
           else
           {
                Console.WriteLine("Is key1 contained in hashtable? {0}", false);
            }
        key1.KeyNumber = 11;
        bool isContained = ht.ContainsKey(key1);
        Console.WriteLine("Is key1 contained in hashtable? {0}", isContained);

        MyTest key2 = new MyTest(10);
        ht.Add(key2, "key2");
        Console.WriteLine("Hashtable counts:" + ht.Count);

        MyTest key3 = new MyTest(15);
        ht.Add(key3, "key3");
        Console.WriteLine("Hashtable counts:" + ht.Count);

        //MyTest key4 = new MyTest(10);
        //ht.Add(key4, "key4");

        先不做解释,看看结果。       

相关内容
赞助商链接