Hashtable
一、哈希表(Hashtable)简述
在.NET Framework 中,Hashtable 是 System.Collections 命名空间提供的一个容器,用
于处理和表现类似 keyvalue 的键值对,其中 key 通常可用来快速查找,同时 key 是区分大
小写;value 用于存储对应于 key 的值。Hashtable 中 keyvalue 键值对均为 object 类型,所以
Hashtable 可以支持任何类型的 keyvalue 键值对。
二、哈希表的简单操作
在哈希表中添加一个 keyvalue 键值对:Hashtable Object.Add(key,value);
在哈希表中去除某个 keyvalue 键值对:Hashtable Object.Remove(key);
从哈希表中移除所有元素:Hashtable Object.Clear();
判断哈希表是否包含特定键 key:Hashtable Object.Contains(key);
下面控制台程序将包含以上所有操作:
using System;
using System.Collections;//使用 Hashtable 时,必须引入这个命名空间
class hashtable
{
public static void Main()
{
Hashtable ht=new Hashtable();//创建一个 Hashtable 实例
ht.Add("E","e");//添加 key/value 键值对
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 keyexist");
ht.Remove("C"); //移除一个 keyvalue 键值对
Console.WriteLine(ht["A"]); //此处输出 a
ht.Clear();//移除所有元素
Console.WriteLine(ht["A"]); //此处将不会有任何输出
}
}
三、遍历哈希表
遍历哈希表需要用到 DictionaryEntry Object,代码如下:
foreach (DictionaryEntry de in ht) fileht 为一个 Hashtable 实例
{
Console.WriteLine(de.Key); //de.Key 对应于 keyvalue 键值对 key
Console.WriteLine(de.Value); //de.Key 对应于 keyvalue 键值对 value
}
四、对哈希表进行排序
对哈希表进行排序在这里的定义是对 keyvalue 键值对中的 key 按一定规则重新排列,
但是实际上这个定义是不能实现的,因为我们无法直接在 Hashtable 进行对 key 进行重新排
列,如果需要 Hashtable 提供某种规则的输出,可以采用一种变通的做法: