Hashtable 键值对集合
    image.png
    在键值对集合当中,我们是根据键去找值得。
    键值对对象[键]=值;
    *键值对集合当中,键必须是唯一的,而值是可以重复的。
    **

    1. using System;
    2. using System.Collections;
    3. namespace _066_Hashtable键值对集合
    4. {
    5. class Program
    6. {
    7. static void Main(string[] args)
    8. {
    9. Hashtable ht = new Hashtable();
    10. ht.Add(1, "我是1");
    11. ht.Add(2, '女');
    12. ht.Add(3, false);
    13. ht.Add(true, "正确");
    14. ht[4] = "赋值";//这也是一种添加数据的方式
    15. ht[1] = "重新赋值操作";
    16. //在键值对集合中,是根据键去找值的
    17. Console.WriteLine(ht[1]);
    18. Console.WriteLine(ht[2]);
    19. Console.WriteLine(ht[true]);
    20. Console.WriteLine("============================");
    21. for (int i = 0; i < ht.Count; i++)
    22. {
    23. Console.WriteLine(ht[i]);//因为没有ht[0]所以空一行。同时也访问不到ht[true].
    24. }
    25. Console.WriteLine("============================");
    26. //foreach遍历命名空间
    27. foreach (var item in ht)//item:每一项
    28. {
    29. Console.WriteLine(item);
    30. }
    31. Console.WriteLine("============================");
    32. //foreach遍历value
    33. foreach (var item in ht.Values)//item:每一项
    34. {
    35. Console.WriteLine(item);
    36. }
    37. Console.WriteLine("============================");
    38. //foreach遍历键 求value
    39. foreach (var item in ht.Keys)//item:每一项
    40. {
    41. Console.WriteLine("键:{0},值:{1}",item,ht[item]);
    42. }
    43. Console.WriteLine("============================");
    44. //ContainsKey();判断是否包含指定键
    45. if (!ht.ContainsKey("abc"))
    46. {
    47. ht.Add("abc", "cba");
    48. }
    49. else
    50. {
    51. Console.WriteLine("abc这个键已经存在!!");
    52. }
    53. //ht.Clear();//移除集合中所有元素
    54. ht.Remove(3);//移除集合中带有指定键的元素
    55. foreach (var item in ht.Keys)//item:每一项
    56. {
    57. Console.WriteLine("键:{0},值:{1}", item, ht[item]);
    58. }
    59. Console.ReadKey();
    60. }
    61. }
    62. }

    练习:

    1. using System;
    2. using System.Collections;
    3. namespace _069_Hashtable练习_简繁转换_
    4. {
    5. class Program
    6. {
    7. // private const String Jian = "的一了是我不在人们有来他这上着个地到大里说去子得也和那要下看天时过出小么起你都把好还多没为又可家学只以主会样年想能生同老中从自面前头到它后然走很像见两用她国动进成回什边作对开而已些现山民候经发工向事命给长水几义三声于高正妈手知理眼志点心战二问但身方实吃做叫当住听革打呢真党全才四已所敌之最光产情路分总条白话东席次亲如被花口放儿常西气五第使写军吧文运在果怎定许快明行因别飞外树物活部门无往船望新带队先力完间却站代员机更九您每风级跟笑啊孩万少直意夜比阶连车重便斗马哪化太指变社似士者干石满决百原拿群究各六本思解立河爸村八难早论吗根共让相研今其书坐接应关信觉死步反处记将千找争领或师结块跑谁草越字加脚紧爱等习阵怕月青半火法题建赶位唱海七女任件感准张团屋爷离色脸片科倒睛利世病刚且由送切星晚表够整认响雪流未场该并底深刻平伟忙提确近亮轻讲农古黑告界拉名呀土清阳照办史改历转画造嘴此治北必服雨穿父内识验传业菜爬睡兴";
    8. // private const String Fan = "的一了是我不在人們有來他這上着個地到大里說去子得也和那要下看天時過出小麼起你都把好還多沒為又可家學只以主會樣年想能生同老中從自面前頭到它後然走很像見兩用她國動進成回什邊作對開而已些現山民候經發工向事命給長水幾義三聲於高正媽手知理眼志點心戰二問但身方實吃做叫當住聽革打呢真黨全才四已所敵之最光產情路分總條白話東席次親如被花口放兒常西氣五第使寫軍吧文運在果怎定許快明行因別飛外樹物活部門無往船望新帶隊先力完間卻站代員機更九您每風級跟笑啊孩萬少直意夜比階連車重便斗馬哪化太指變社似士者干石滿決百原拿群究各六本思解立河爸村八難早論嗎根共讓相研今其書坐接應關信覺死步反處記將千找爭領或師結塊跑誰草越字加腳緊愛等習陣怕月青半火法題建趕位唱海七女任件感准張團屋爺離色臉片科倒睛利世病剛且由送切星晚表夠整認響雪流未場該並底深刻平偉忙提確近亮輕講農古黑告界拉名呀土清陽照辦史改歷轉畫造嘴此治北必服雨穿父內識驗傳業菜爬睡興";
    9. private const string Jian = "韦晓龙";
    10. private const string Fan = "韋曉龍";
    11. static void Main(string[] args)
    12. {
    13. Hashtable ht = new Hashtable();
    14. for (int i = 0; i < Jian.Length; i++)
    15. {
    16. ht.Add(Jian[i], Fan[i]);
    17. }
    18. Console.WriteLine("请输入:");
    19. string input = Console.ReadLine();
    20. for (int i = 0; i < input.Length; i++)
    21. {
    22. if (ht.Contains(input[i]))
    23. {
    24. Console.Write(ht[input[i]]);
    25. }
    26. else
    27. {
    28. Console.Write(input[i]);
    29. }
    30. }
    31. Console.ReadKey();
    32. }
    33. }
    34. }