欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 编程语言 > c# >内容正文

c#

c# hashtable -凯发k8官方网

发布时间:2024/10/8 c# 0 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 c# hashtable 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

hashtable
一,哈希表(hashtable)简述

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

二,哈希表的简单操作

在哈希表中添加一个key/键值对:hashtableobject.add(key,);
在哈希表中去除某个key/键值对:hashtableobject.remove(key);
从哈希表中移除所有元素:            hashtableobject.clear();
判断哈希表是否包含特定键key:       hashtableobject.contains(key);
下面控制台程序将包含以上所有操作:
using system;
using system.collections; //使用hashtable时,必须引入这个命名空间
class hashtable
{
   public static void main()
   {
   hashtable ht=new hashtable(); //创建一个hashtable实例
   ht.add("e","e");//添加key/键值对
   ht.add("a","a");
   ht.add("c","c");
   ht.add("b","b");

   string s=(string)ht["a"];
   if(ht.contains("e")) //判断哈希表是否包含特定键,其返回值为true或false
     console.writeline("the e key:exist");
   ht.remove("c");//移除一个key/键值对
   console.writeline(ht["a"]);//此处输出a
   ht.clear();//移除所有元素
   console.writeline(ht["a"]); //此处将不会有任何输出
   }
}


三,遍历哈希表

遍历哈希表需要用到dictionaryentry object,代码如下:
foreach(dictionaryentry de in ht) //ht为一个hashtable实例
{
    console.writeline(de.key);//de.key对应于key/键值对key
    console.writeline(de.);//de.key对应于key/键值对
}

注意:用foreach

四,对哈希表进行排序

   对哈希表进行排序在这里的定义是对key/键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的,因为我们无法直接在hashtable进行对key进行重新排列,如果需要hashtable提供某种规则的输出,可以采用一种变通的做法:
arraylist akeys=new arraylist(ht.keys); //别忘了导入system.collections
akeys.sort(); //按字母顺序进行排序
foreach(string skey in akeys)
{
    console.write(skey ":");
    console.writeline(ht[skey]);//排序后输出
}

注意:用foreach 下面是一个简单的例子: class samplehashtable
{
   ///
   /// the main entry point for the application.
   ///

   [stathread]
   static void main(string[] args)
   {
    // create and initialize a new hashtable.
    hashtable table = new hashtable();
    //student name, grade
    table.add("leiwanjun", 100);
    table.add("wanghuan", 87);
    table.add("wuhailong", 92);
    table.add("renyao", 76);
    table.add("tanghonglei", 84);
    table.add("chenxiaoping", 91);
    table.add("liupeixun", 80);
    table.add("huyoumou", 87); // display the properties and values of the hashtable.   
    console.writeline("count: {0}", table.count);
    printtable(table); console.writeline();
    int g = (int) table["wuhailong"];
    console.writeline ("wuhailong's grade is: {0}", g); console.writeline();
    printitems ("all names", table.keys);
           
    console.writeline();
    printitems ("all grades", table.values); } public static void printtable( hashtable mylist)
   {
    console.writeline ("{0, -15} {1, -15}", "name","grade");
    console.writeline ("{0, -15} {1, -15}", "----","-----");
//    // 排序
//    arraylist al = new arraylist(mylist.keys);
//    al.sort();
//    foreach (string name in al)
//    {
//     console.writeline("{0, -15} {1, -15}", name, mylist[name]);
//    }
//    //
    //遍历哈希表中的每个元素,直接输出
    foreach (dictionaryentry e in mylist)
    {
     console.writeline ("{0, -15} {1, -15}", e.key, e.value);
    }
   } public static void printitems(string title, ienumerable mylist )
   {
    console.write ("{0}: ", title);
    stringbuilder sb = new stringbuilder();
    foreach (object o in mylist)
    {
     sb.appendformat( "{0}, ", o);
    }
    sb.remove(sb.length - 2, 2);
    console.writeline(sb);

转载于:https://www.cnblogs.com/hyfei0315/archive/2008/07/07/1237728.html

总结

以上是凯发k8官方网为你收集整理的c# hashtable的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

网站地图