Hashtable通常称为哈希表,用于表示键/值对的集合,这些键/值对根据键的哈希代码进行组织,其没个元素都是一个存储于DictionaryEntry对象中的键/值对。键不能为空引用,但值可以。
Hashtable的构造函数有多种,这里介绍两种最常用的。
1、使用默认的初始容量、默认加载因子、默认哈希代码提供程序和默认比较器来初始化Hashtable类的新的空实例。
public Hashtable()
2、使用指定的初始容量、默认加载因子、默认哈希代码提供程序和默认比较器来初始化Hashtable类的新的空实例。
public Hashtable(int capacity)//capacity指Hashtable对象最初可包含的元素的近似数目。
Hashtable常用属性及说明
属性 | 说明 |
---|---|
Count | 获取包含在Hashtable中的键/值对的数目 |
IsFixedSize | 获取一个值,该值指示Hashtable是否具有固定大小 |
IsReadOnly | 获取一个值,该值指示Hashtable知否为只读 |
IsSynchronized | 获取一个值,该值指示是否同步对Hashtable的访问 |
Item | 设置或获取与指定的键相关联的值 |
Keys | 获取包含Hashtable中的键的ICollection |
SyncRoot | 获取可用于同步Hashtable访问的对象 |
Values | 获取包含Hashtable中的值的ICollection |
Add方法:向Hashtable中添加元素
public virtual void Add(Object key,Object value)
说明:
1、Clear方法:从Hashtable中移除所有元素
public virtual void Clear()
例:
static void Main(string[] args)
{
Hashtable hashtable = new Hashtable();
hashtable.Add("id","BH0001");
hashtable.Add("name","TM");
hashtable.Add("sex","Man");
hashtable.Clear();
Consol.WriteLine(hashtable.Count);
}
程序运行结果为
0
2、Remove方法:从Hashtable中移除带有指定键的元素
public virtual void Remove(Object key)
//其中key是要移除的元素的键
例:
static void Main(string[] args)
{
Hashtable hashtable = new Hashtable();
hashtable.Add("id","BH0001");
hashtable.Add("name","TM");
hashtable.Add("sex","Man");
hashtable.Remove("sex");
Consol.WriteLine(hashtable.Count);
}
程序运行结果为:
2
Hashtable的遍历与数组的遍历类似,都可以使用foreach语句。但是,Hashtable中的元素是一个键/值对,因此需要使用DictionaryEntry类型来进行遍历。DictionaryEntry表示一个键/值对的集合。
例:
static void Main(string[] args)
{
Hashtable hashtable = new Hashtable();
hashtable.Add("id","BH0001");
hashtable.Add("name","TM");
hashtable.Add("sex","Man");
Console.WriteLine("\t 键 \t 值");
foreach(DictionaryEntry dicEntry in hashtable)
{
Console.WriteLine("\t"+dicEntry.Key+"\t"+dicEntry.Value);
}
}
程序运行结果为:
键 值
name TM
sex Man
id BH0001
1、Contains方法:用来确定Hashtable中是否包含特定键
public virtual bool Contains(Object key)
说明:
2、ContainsValue方法:确定Hashtable中是否包含特定值
public virtual bool ContainsValue(Object value)
说明: