Hashtable类代表了一系列基于键的哈希代码组织起来的键/值对。它使用键来访问集合中的元素。它的主要作用就是提高数据查询的效率。当我们使用键访问元素时,则使用Hashtable,而且我们可以识别一个有用的键值。Hashtable中的每一项都有一个键/值对。键用于访问集合中的项目。
我们一般在下列四种情况下会选择使用Hashtable
1.某些数据会被高频率查询
2.数据量大
3.查询字段包含字符串类型
4.数据类型不唯一
那么我们改如何申明Hashtable呢,我们可以使用以下代码来申明:
Hashtable hashtable = new Hashtable();//Hashtable在System.Collections命名空间下定义;因此,在程序中使用Hashtable时,必须添加System.Collections命名空间
下面列举 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 中移除带有指定的键的元素。
需要注意的是,Hashtable的增删查改与之前不同。Hashtable增加数据时,不能出现相同的键;如果想要在Hashtable中删除数据,只能通过通过键来删除,删除不存在的键时没有反应,如果想要删除某些数据,也可以通过清空的方式进行删除;查看Hashtable中的数据是否存在时,我们可以通过键检测或者值检测两种方式进行查看;我们如果想要更改Hashtable中的内容时,只能更改键对应的值内容,无法修改键。
遍历
得到键值对 对数
Console.WriteLine(hashtable.Count);
遍历所有键
foreach(object item in hashtable.Keys) { Console.WriteLine(“键:”+item); Console.WriteLine(“值:”+hashtable[item]); }
遍历所有值
foreach(object item in hashtable.Values) { Console.WriteLine(“键:”+item); }
键值对一起遍历
foreach(object item in hashtable) { Console.WriteLine(“键:”+item.Key+”值:”+item.Value); }
迭代器遍历
IDictionaryEnumerator myEnumerator = hashtable.GetEnumerator(); bool flag = myEnumerator.MoveNext(); While(flag) { Console.WriteLine(“键:”+myEnumerator.Key+”值:”+myEnumerator.Value); flag = myEnumerator.MoveNext(); }
由于Queue用万物之父来存储数据,所以存在装箱拆箱的概念。当我们往其中进行值类型存储时,就是在装箱;当我们将值类型对象取出来转换使用时,就是在拆箱。