C#中HashTable的用法
命名空间
System.Collections
名称
哈希表(Hashtable)
描述
用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中keyvalue键值对均为object类型,所以Hashtable可以支持任何类型的keyvalue键值对.
二,哈希表的简单操作
Hashtable hshTable = new Hashtable(); // 创建哈希表
hshTable .Add("Person1", "zhanghf"); // 往哈希表里添加键值对
hshTable .Clear(); //移除哈希表里所有的键值对
hshTable .Contains("Person1"); //判断哈希表里是否包含该键
string name = (string)hshTable["Person1"].ToString(); //取哈希表里指定键的值
hshTable.Remove("Person1"); // 删除哈希表里指定键的键值对
IDictionaryEnumerator en = hshTable.GetEnumerator(); // 遍历哈希表所有的键,读出相应的值
while (en.MoveNext())
{
string str = en.Value.ToString();
}
下面控制台程序将包含以上所有操作:
class Program { static void Main(string[] args) { // 创建一个Hashtable实例 Hashtable ht=new Hashtable(); // 添加keyvalue键值对 ht.Add("A","1"); ht.Add("B","2"); ht.Add("C","3"); ht.Add("D","4"); // 遍历哈希表 foreach (DictionaryEntry de in ht) { Console.WriteLine("Key -- {0}; Value --{1}.", de.Key, de.Value); } // 哈希表排序 ArrayList akeys=new ArrayList(ht.Keys); akeys.Sort(); foreach (string skey in akeys) { Console.WriteLine("{0, -15} {1, -15}", skey, ht[skey]); } // 判断哈希表是否包含特定键,其返回值为true或false if (ht.Contains("A")) Console.WriteLine(ht["A"]); // 给对应的键赋值 ht["A"] ="你好"; // 移除一个keyvalue键值对 ht.Remove("C"); // 遍历哈希表 foreach (DictionaryEntry de in ht) { Console.WriteLine("Key -- {0}; Value --{1}.", de.Key, de.Value); } // 移除所有元素 ht.Clear(); // 此处将不会有任何输出 Console.WriteLine(ht["A"]); Console.ReadKey(); } }