Hashtable
Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key-value的键值对,其中key通常可用来快速查找,同时key是区分大小写且唯一,value用于存储对应于key的值。Hashtable中key-value键值对均为object类型,所以Hashtable可以支持任何类型的key-value键值对。
Hashtable的声明
声明一个哈希表要用关键字 Hashtable。其语法格式与类的声明相同。
Hashtable ht=new Hashtable(); //声明ht
Hashtable的属性
Hashtable常用的属性有Count、Keys、Values,其中:Count是获取Hashtable中的元素个数,Keys表示获取 Hashtable 中的键的集合, Values 表示 Hashtable 中的所有值的集合。
Hashtable ht = new Hashtable();
ht.Add(1, 1);
ht.Add(2, 2);
ICollection Ic=ht.Keys; // ICollection 定义非泛型集合
foreach (int i in Ic)
{
Console.WriteLine(i.ToString()+" "); // 显示结果为2 1
}
ht.add(3,"3");
ht.add(4,"4");
ICollection icv=ht.Values;
forearch(object i in icv)
{
Console.WriteLine(i.ToString()+" "); // 显示结果为4 3 2 1
}
int count=ht.Count; //结果为4
Hashtable的方法
C#为我们提供了一些操作Hashtable常用的方法如下表:
public virtual void Add( object key, object value );
向 Hashtable 添加一个带有指定的键和值的元素。
public virtual void Clear();
从 Hashtable 中移除所有的元素。
public virtual bool ContainsKey( object key );
判断 Hashtable 是否包含指定的键。
public virtual bool ContainsValue( object value );
判断 Hashtable 是否包含指定的值。
public virtual void Remove( object key );
从 Hashtable 中移除带有指定的键的元素。
using System;
using System.Collections; //使用Hashtable时,必须引入这个命名空间
namespace test
{
class hashtable
{
public static void Main()
{
Hashtable ht=new Hashtable(); //创建一个Hashtable实例
//key值唯一,value值可以重复.
ht.Add("E","e");//添加key/键值对
ht.Add("A","a");
ht.Add("C","c");
ht.Add("B","b");
string s=(string)ht["A"];
if(ht.ContainsKey("E")) //判断哈希表是否包含特定键,其返回值为true或false
Console.WriteLine("the E key:exist");
ht.Remove("C");//移除一个key/键值对
Console.WriteLine(ht["A"]);//此处输出a
ht.Clear();//移除所有元素
Console.WriteLine(ht["A"]); //此处将不会有任何输出
}
}
}
Hashtable的元素访问
Hashtable使用键访问元素。如下代码:
Hashtable ht=new Hashtable();
ht.Add(1,"1");
ht.Add(2,"2");
string value1=ht[1].ToString(); // 结果为1
string value2=ht[2].ToString(); //结果为2