C# 怎么遍历一个 Dictionary_C# Dictionary 遍历方法详解


遍历C# Dictionary有多种方式,最常用的是使用foreach直接遍历KeyValuePair,适合同时访问键和值;若只需键或值,可分别遍历Keys或Values集合以提升效率;需要精细控制时可用GetEnumerator手动遍历;遍历时不可直接修改字典,否则会抛出异常,应先缓存需删除的键再操作。

c# 怎么遍历一个 dictionary_c# dictionary 遍历方法详解

在 C# 中,遍历 Dictionary 是常见操作。Dictionary 存储键值对,遍历时有多种方式,可根据需求选择最合适的方法。

1. 使用 foreach 遍历 KeyValuePair

最常用的方式是使用 foreach 循环直接遍历字典,每次获取一个 KeyValuePair 对象。

这种方式简单直观,适合同时访问键和值。

示例:

Dictionary<string, int> ages = new Dictionary<string, int><br>{<br>    { "Alice", 25 },<br>    { "Bob", 30 },<br>    { "Charlie", 35 }<br>};<br><br>foreach (var kvp in ages)<br>{<br>    Console.WriteLine($"Name: {kvp.Key}, Age: {kvp.Value}");<br>}

2. 分别遍历 Keys 或 Values 集合

如果只需要键或只需要值,可以直接遍历 Keys 或 Values 属性。

这样可以减少不必要的数据访问,提高可读性。

  • 遍历所有键:

foreach (var key in ages.Keys)<br>{<br>    Console.WriteLine("Key: " + key);<br>}

  • 遍历所有值:

foreach (var value in ages.Values)<br>{<br>    Console.WriteLine("Value: " + value);<br>}

3. 使用 GetEnumerator 手动遍历

适用于需要更精细控制遍历过程的场景,比如在特定条件下跳出或继续。

通过 GetEnumerator() 获取枚举器,手动调用 MoveNext() 和访问 Current。

ViiTor AI ViiTor AI

一个强大的多语言AI语音合成和视频转译平台

ViiTor AI 9414 查看详情 ViiTor AI

示例:

var enumerator = ages.GetEnumerator();<br>while (enumerator.MoveNext())<br>{<br>    var current = enumerator.Current;<br>    Console.WriteLine($"Key: {current.Key}, Value: {current.Value}");<br>}

注意:通常推荐使用 foreach,除非有特殊控制需求。

4. 在遍历时安全地修改字典

不能在 foreach 遍历过程中直接添加或删除元素,否则会抛出 InvalidOperationException。

如果需要删除满足条件的项,应先收集键,再单独操作:

var keysToRemove = ages.Where(kvp => kvp.Value < 30)<br>                         .Select(kvp => kvp.Key)<br>                         .ToList();<br><br>foreach (var key in keysToRemove)<br>{<br>    ages.Remove(key);<br>}

或者使用 for 循环反向遍历(不适用于 Dictionary,因其无序),所以推荐先缓存键列表。

基本上就这些。根据实际需要选择遍历方式,日常开发中 foreach(var kvp in dict) 最实用也最清晰。

以上就是C# 怎么遍历一个 Dictionary_C# Dictionary 遍历方法详解的详细内容,更多请关注其它相关文章!


# 游戏开发  # 健客有没有假网站推广  # 补单推广网站  # seo目标选择  # seo044  # 洪梅抖音关键词排名  # 旅游店面推广营销策划案  # 仪陇县网站推广  # 如何让自己的网站推广  # 浙江seo查询平台有哪些  # 梧州附近seo推广公司  # 的是  # ai  # 应先  # 最常用  # 抛出  # 则会  # 只需要  # 键值  # 如何使用  # 遍历  # 键值对  # 数据访问  # c# 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894 】


相关推荐: 如何使用CSS Grid实现“大方块左侧,小方块右侧垂直堆叠”的水平布局  iPhone16Plus参数配置如何调整声音_iPhone16Plus参数配置声音调整详细方法  键盘测试软件哪个好_键盘故障检测工具推荐  b站如何剪辑视频_b站必剪app使用教程  包子漫画官网链接官方地址 包子漫画在线观看官网首页入口  火柴人战争网页版在线玩  高德地图怎么查看未来行程规划_高德地图未来行程规划查看方法  感染了幽门螺杆菌一定会导致胃癌吗?蚂蚁庄园今日答案最新11.30  《王者荣耀世界》英雄获取攻略  三角洲行动2025年9月10日摩斯密码分享  《植物大战僵尸3》火龙草作用介绍  lol小红书怎么|直播|?lol小红书|直播|是什么意思?  精通VS Code多光标编辑以实现闪电般快速的修改  QQ网站入口直接登录 QQ官方正版登录页面  Lar*el Eloquent:高效删除多对多关系中无关联子记录的父模型  《撕歌》会员开通方法  WooCommerce购物车:强制显示所有交叉销售商品教程  苹果官网国补入口在哪  mysql通配符能用于日志查询吗_mysql通配符在系统日志查询中的实际使用方法  苹果自助维修计划支持哪些设备机型  《星露谷物语》克林特好感度事件介绍  键盘保修需要什么_键盘售后维修流程  163邮箱网页版入口 163邮箱在线使用  《下一站江湖2》风神腿获取攻略  MySQL多重JOIN技巧:高效关联同一表获取多角色信息  iPhone 14 Pro如何更改区域设置_iPhone 14 Pro地区语言修改教程  SQLAlchemy 2.0 与 Pydantic 模型类型安全集成指南  谷歌邮箱官方入口链接 谷歌邮箱网页版电脑端快速登录  J*aScript模块加载器_RequireJS原理分析  Retrofit根路径POST请求:@POST("/") 的应用与解析  微信网页版在线登录 微信网页版在线使用入口  Go Template中优雅处理循环最后一项:自定义函数实践  CSS如何在页面中引入重置样式_使用Normalize.css或Reset.css统一浏览器默认样式  苹果电脑如何快速查看电池状态 苹果电脑电池信息快捷方法  虫虫助手如何更新游戏  126邮箱申请入口官网_126邮箱注册免费登录2025  win11怎么启用或禁用休眠 Win11 powercfg命令管理休眠文件【技巧】  使用CSS :has() 选择器实现父元素样式控制:从子元素反向应用样式  苹果17 Pro如何启用分屏浏览_iPhone 17 Pro分屏浏览设置步骤  深入理解随机递归函数的确定性:内部节点、叶节点与时间复杂度分析  解决J*aScript动态图片上传中ID重复问题:在同一页面显示多张独立图片  邦丰播放器频道搜索设置  《健康大兴》注册方法介绍  MacBook Pro词典使用指南  《环球网校》设置报考省市方法  猫眼电影app如何参与官方的抽奖活动_猫眼电影官方抽奖参与方法  TikTok视频播放不流畅怎么办 TikTok视频播放优化方法  TikTok网页版入口快速访问 TikTok官网账号登录方法  C++ optional用法详解_C++17处理可能为空的返回值  《雷电模拟器》自动点击设置方法 

 2025-11-03

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.