一、方法同hashtable,键必须唯一。
链接https://www.cnblogs.com/yaoyue68/p/14508064.html
Dictionary<int,string> dc = new Dictionary<int ,string>(); dc.Add(1, "天气好"); dc.Add(2, "天气不好"); dc[2] = "我修改你"; dc[3] = "我是新加的"; //没有就添加,有则修改 dc.ContainsValue(); //重要的两个方法 dc.ContainsValue(); //遍历,var简便些 foreach (var keyValuePair in dc) { Console.WriteLine($"{keyValuePair.Key}:{keyValuePair.Value}"); } //或者 声明类型 KeyValuePair<int,string> kv foreach (KeyValuePair<int,string> kv in dc) { Console.WriteLine($"{kv.Key}:{kv.Value}"); } Console.ReadKey();
二、练习
1.将一个数组中的奇偶数各放到一个集合中,然后重组为集合,键为奇数,键值为偶数。
int[] raw = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; List<int> ji = new List<int>(); List<int> ou = new List<int>(); for (int i = 0; i < raw.Length; i++) { if (raw[i]%2==0) { ou.Add(raw[i]); } else { ji.Add(raw[i]); } } //拼接新字典键值对 Dictionary<int, int> dc = new Dictionary<int, int>(); for (int i = 0; i < ou.Count; i++) { dc.Add(ji[i], ou[i]); } foreach (var item in dc) { Console.WriteLine($"{item.Key}:{item.Value}"); }
2.统计welcome to china 各字符出现的次数
static void Main(string[] args) { string raw = "welcome to china"; Dictionary<char, int> dc = new Dictionary<char, int>(); //去空格 string raw2 = raw.Replace(" ", ""); ///如果没有上面的去空格语句,则 if (raw[i]==' ') //replace是双引号 { continue; //跳过这次的循环,直接进行下一次 } /// for (int i = 0; i < raw2.Length; i++) { if (!dc.ContainsKey(raw2[i]))//containskey注意 { dc.Add(raw2[i], 1); } else { dc[raw2[i]]++; } } foreach (var item in dc) { Console.WriteLine($"{item.Key}:{item.Value}"); } Console.ReadKey(); }