一 概述
- C#中Hashtable类实现了IDictionary接口,集合中的值都是以键值对的形式存取的
- C#中的Hashtable称为哈希表,也称为散列表,在该集合中使用键值对(key/value)的形式存放值
- 换句话说,在Hashtable中存放了两个数组,一个数组用于存放key值,一个数组用于存放value值
二 实例化(构造方法)
1
| Hashtable 对象名 = new Hashtable ();
|
- Hashtable 类提供的构造方法有很多,最常用的是不含参数的构造方法,即通过如下代码来实例化 Hashtable 类
三 常用属性和方法
属性或方法 |
作用 |
Count |
集合中存放的元素的实际个数 |
void Add(object key,object value) |
向集合中添加元素 |
void Remove(object key) |
根据指定的 key 值移除对应的集合元素 |
void Clear() |
清空集合 |
ContainsKey (object key) |
判断集合中是否包含指定 key 值的元素 |
ContainsValue(object value) |
判断集合中是否包含指定 value 值的元素 |
四 实例 使用 Hashtable 集合实现图书信息的添加、查找以及遍历的操作
4.1 分析
根据题目要求,先向 Hashtable 集合中添加 3 个值,再根据所输入的 key 值查找图书名称,最后遍历所有的图书信息
4.2 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| class Program { static void Main(string[] args) { Hashtable ht = new Hashtable(); ht.Add(1, "计算机基础"); ht.Add(2, "C#高级编程"); ht.Add(3, "数据库应用"); Console.WriteLine("请输入图书编号"); int id = int.Parse(Console.ReadLine()); bool flag = ht.ContainsKey(id); if (flag) { Console.WriteLine("您查找的图书名称为:{0}", ht[id].ToString()); } else { Console.WriteLine("您查找的图书编号不存在!"); } Console.WriteLine("所有的图书信息如下:"); foreach(DictionaryEntry d in ht) { int key = (int)d.Key; string value = d.Value.ToString(); Console.WriteLine("图书编号:{0},图书名称:{1}", key, value); } } }
|
4.3 说明
从上面的执行效果可以看出,在使用Hashtable时能同时存放key/value的键值对,由于key值是唯一的,因此可以根据指定的key值查找value值