欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#中Hash table的一些操作方法讲解

程序员文章站 2023-11-27 10:19:16
散列表(hash table,也叫哈希表),是根据关键码值(key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找...

散列表(hash table,也叫哈希表),是根据关键码值(key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。

今天难得有了半天时间,鸣炮!任务都做完了,我终于有点时间去分析公司这个项目的代码,看到了其中有好多的对hash table的应用。有好多的bll层的代码的方法传入的是hashtable.其实我所做的模块中,如果有超过三个变量以上的参数传入我会将这些封装成一个个对象,可能是大学一直是用c语言,太多了参数的话就将其弄成结构体,到了c#我就封成对象,既然做的面向对象,为什么传参数还这样一个个用hashtable 一个个的add进来?我表示我初入c#,我没有去深究为什么公司大部分的都是用传入hash table的方式做参数。废话不多说了。记录一下对hash table的操作:

1、hash table要引入命名空间:system.colloctions;

     hashtable lobjhashtable = new hashtable(); //实例化
      lobjhashtable.add(key,value); //增加一个键值对,这里面这个key要是唯一的!
      lobjhashtable.remove(key);//移除一个key 
     lobjhashtable.clear();//清除所有的键值对
      lobjhashtable.contains(key);// 是否包含某一个特定的kye
      //eg
      lobjhashtable.add("key1","value1");
      lobjhashtable.add("key2","value2");
      lobjhashtable.add("key3","value3");
      //取出某一个键的值
      string lstrtemp = (string)lobjhashtable["key1"];

c# 表的遍历方法:一下提供两种遍历hash table的方法

 foreach(dictionaryentry objde in lobjhashtable)
      {
        string lstrkey = objde.key.tostring();//键
        string lstrvalue = objde.value.tostring();//值
      }
      system.collections.idictionaryenumerator emutor = lobjhashtable.getenumerator();
      while(emutor.movenext())
      {
        string lstrkey = emutor.key.tostring();
        string lstrvalue emutor.value.tostring();
      }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接