1 namespace _02Hashtable 2 { 3 class Program 4 { 5 static void Main(string[] args) 6 { 7 //哈希表类似于字典,在查找元素的时候很快 8 //键值对是根据算法算出来的,键根据算法找到值 9 Hashtable hash = new Hashtable(); 10 //通过键值来添加 11 hash.Add("撒旦发个","第三个");//都是object类型,什么都可以写 12 hash.Add(true,"1234"); 13 14 //通过键来获取值 15 Console.WriteLine(hash[true].ToString()); 16 17 //特点:1.键值对集合的“键”一定不能重复 hash.Add(true,"1234"); 18 19 //判断一个集合中是否存在某个键 20 bool b= hash.ContainsKey(true); 21 bool bb = hash.ContainsValue("1234");//判断键值对中是否存在某个值 22 Console.WriteLine(b); 23 Console.WriteLine(bb);
1 //遍历hashtable 2 //1.遍历键 3 Console.WriteLine("==========遍历键=================="); 4 foreach (var item in hash.Keys) 5 { 6 Console.WriteLine("键: {0}----->值: {1}",item,hash[item]); 7 } 8 // 2.直接遍历值 9 Console.WriteLine("==========直接遍历值=================="); 10 foreach (var item in hash.Values) 11 { 12 Console.WriteLine("值: {0}",item); 13 } 14 //直接遍历键值对 15 Console.WriteLine("==========直接遍历键值对=================="); 16 foreach (DictionaryEntry item in hash) 17 { 18 Console.WriteLine("键:{0} 值:{1}",item.Key,item.Value); 19 } 20 21 Console.ReadKey(); 22 23 } 24 } 25 }
=============================================================
1 namespace 哈希表 2 { 3 class Program 4 { 5 static void Main(string[] args) 6 { 7 //键值对集合 字典 object类型 object类型 8 //输出用foreach循环 9 Hashtable ht=new Hashtable(); 10 ht.Add(1, "zhangsan"); 11 ht.Add(2,3);// 键+值 都是object类型 12 ht.Add(3,'男'); 13 ht.Add(true,"正确的"); 14 ht[6] = "新的赋值方式"; 15 ht[1] = "干掉zhangsan"; 16 if (!ht.ContainsKey("abc")) 17 { 18 ht.Add("abc","bac"); 19 20 } 21 //键值可以是任何类型 不能局限于123456 22 //ht[i]=“值”这种方式其实是先进行一个判断 23 //若果原来没有键,则添加上值,如果有键,则把值给替换点 24 // 在键值对集合中,是根据键值去找值的 25 //键必须的唯一的,值可以重复的 26 //Console.WriteLine(ht[1]); 27 //Console.WriteLine(ht[2]); 28 //Console.WriteLine(ht[3]); 29 //item 集合中的每一项 collection集合 30 //c#是强类型语言:代码中必须对每一个变量有一个明确的定义 31 //js是弱类型语言 32 //var 根据值来推断类型 33 34 foreach (var item in ht.Keys)//这是item代表键,ht.value 则item代表值 35 { 36 Console.WriteLine("键是{0}==={1}",item,ht[item]);//倒叙的 37 } 38 Console.ReadKey(); 39 } 40 } 41 }