C#中的Hashtable
richTextBox1.Text = ""; Hashtable ht = new Hashtable(); ht.Add("1", "1111"); ht.Add("2", "2222"); ht.Add("3", "3333"); ht.Add("4", "4444"); //遍历方法一:遍历哈希表中的键 richTextBox1.Text += "遍历方法一:遍历哈希表中的键\n"; foreach (string key in ht.Keys) { //Console.WriteLine(string.Format("{0}-{1}"), key, ht[key]); richTextBox1.Text+= string.Format("{0}-{1}", key, ht[key])+"\n"; } richTextBox1.Text += "遍历方法二:遍历哈希表中的值**********************************************************\n"; //遍历方法二:遍历哈希表中的值 foreach (string value in ht.Values) { richTextBox1.Text+= value+"\n"; } richTextBox1.Text += "遍历方法三:遍历哈希表中的键值**********************************************************\n"; //遍历方法三:遍历哈希表中的键值 foreach (DictionaryEntry de in ht) { richTextBox1.Text += string.Format("{0}-{1}", de.Key, de.Value)+"\n"; } richTextBox1.Text += "遍历方法四:遍历哈希表中的键值**********************************************************\n"; //遍历方法四:遍历哈希表中的键值 IDictionaryEnumerator myEnumerator = ht.GetEnumerator(); bool flag = myEnumerator.MoveNext(); while (flag) { richTextBox1.Text+= myEnumerator.Key + "-" + myEnumerator.Value+"\n"; // Console.WriteLine(ht[myEnumerator.Key]);//ht[myEnumerator.Key]== myEnumerator.Value=true; flag = myEnumerator.MoveNext(); } richTextBox1.Text += ht["1"] + "\n";
1、别称:哈希表、键值对、关联数组 2、概述: (1)、用于处理和表现类似Key/Value的键值对 (2)、key --- 可以是不同数据类型,但不能重名,必须满足唯一性,同时它还区分大小写。通常用于快速查找,类似索引。 value --- 用于存储对应key的值, 二者均为object类型, 因此,Hashtable支持任何类型的key/value键值对。 (3)、Hashtable中的元素存储在DictionaryEntry对象中。 3、声明之前需引用命名空间:System.Collections Hashtable ht = new Hashtable(); 4、添加方法: (1)Add(键,"值") (2)ht[键] = "值" 用第二种方法,可能添加元素,也可能是重新赋值,取决于 “键”是否已经存在! 5、遍历方法:利用foreach循环 (1)用DictionaryEntry对象 声明; foreach (DictionaryEntry myEntry in ht) { Console.WriteLine("key键:{0}-----value值:{1}",myEntry.Key,myEntry.Value); } (2)用Object类声明 foreach (object obj in ht.Keys) { Console.WriteLine("key键:{0}-----value值:{1}",obj,ht[obj]); } 6、删除方法: Remove(Key键) ----- 删除指定元素 Clear() ------ 清空所有元素 7、查找方法:(返回布尔值) ContainsKey ---- 按 键 查找 ContainsValue ---- 按 值 查找