c#学习笔记-字典(Dictionary)

张开发
2026/4/13 17:20:39 15 分钟阅读

分享文章

c#学习笔记-字典(Dictionary)
摘要本文介绍了C#中字典(Dictionary)的基本使用。字典是键值对集合通过DictionaryTKey,TValue实现。主要内容包括1创建和初始化字典2常用操作如添加、获取、检查和删除元素3遍历字典的键值对4字典特性如键唯一性、快速查找等。最后通过城市邮编管理案例演示了字典的实际应用并提醒注意键不存在异常、线程安全等问题。字典适合需要快速查找的场景但使用时需注意其特性。1.字典的基本概念字典是一种键值对集合每个键对应一个值。类似于现实中的字典可以通过单词(键)查找解释(值)。字典在C#中用DictionaryTKey, TValue表示。2.创建字典// 创建一个以字符串作为键以整数作为值的字典 Dictionarystring, int ageDict new Dictionarystring, int(); // 创建时初始化 Dictionarystring, string capitals new Dictionarystring, string() { {中国, 长沙}, {美国, 纽约}, {中国, 北京} };3.常用操作添加元素使用Add方法或索引器ageDict.Add(张三, 20); ageDict[李四] 30; // 如果键存在则更新不存在则添加获取值通过键访问int age ageDict[张三]; // 返回25检查键是否存在if(ageDict.ContainsKey(王五)) { Console.WriteLine(王五的年龄是 ageDict[王五]); }删除元素ageDict.Remove(李四); // 删除键为李四的项遍历字典遍历所有键值对foreach(KeyValuePairstring, int item in ageDict) { Console.WriteLine(${item.Key}: {item.Value}岁); }仅遍历键或值//处理键 foreach(var key in ageDict.Keys) { console.writeline(key); } //处理值 foreach(var value in ageDict.Values) { console.writeline(value); }4.字典的特性键必须是唯一的不能重复键不能为null查找速度非常快基于哈希表实现元素是无序排列的5.案例创建Directory集合存放城市名和邮编键为城市名值为邮编编号通过控制台添加信息如果城市已存在则修改原有邮政编号通过循环打印所有的信息// 创建字典存储城市和邮编 Dictionarystring, string CitymessageDict new Dictionarystring, string(); bool c true; // 用户输入 while (c) { Console.Write(\n请输入城市名称); string cityname Console.ReadLine(); // 退出条件判断 if (cityname.ToLower() t) { c false; continue; } Console.Write(请输入邮编号码); string cityid Console.ReadLine(); // 更新或添加信息 if (CitymessageDict.ContainsKey(cityname)) { Console.WriteLine($更新 {cityname} 的邮编{cityid}); CitymessageDict[cityname] cityid; } else { Console.WriteLine($添加 {cityname} 的邮编{cityid}); CitymessageDict.Add(cityname, cityid); } } // 打印所有信息 Console.WriteLine(城市信息如下); Printcity(CitymessageDict); //打印城市信息 static void Printcity(Dictionarystring, string dict) { foreach (var item in dict) { Console.WriteLine($城市名{item.Key} 城市邮编{item.Value}); } }6.注意事项访问不存在的键会抛出KeyNotFoundException线程不安全多线程环境需使用ConcurrentDictionary自定义类型作为键时需要正确实现GetHashCode和Equals方法本期c#学习笔记分享到此结束请期待下次更新

更多文章