You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何遍历Dictionary需使用KeyValuePair而非Dictionary类型?

为什么遍历Dictionary必须使用KeyValuePair而非Dictionary类型?

核心原因:foreach遍历的是集合中的单个元素,而Dictionary的元素是键值对

foreach的工作逻辑很直接:它会依次取出集合里的每一个成员,赋值给你声明的变量,所以变量类型必须和集合中元素的类型匹配(或兼容)。

拿你熟悉的场景举例:遍历List<int>这类集合时,集合里的每个元素都是int类型,所以foreach(int item in items)完全合法——变量item的类型和集合元素类型一致。

而Dictionary<TKey, TValue>本质是一个存储键值对的集合,它内部的每一个元素都是KeyValuePair<TKey, TValue>对象,而非Dictionary<TKey, TValue>实例。你之前的错误写法foreach(Dictionary<TKey,TValue> item in dictionaryobject),相当于试图把一个键值对对象赋值给Dictionary类型的变量,这两种类型没有继承或转换关系,编译器自然会报错。

额外说明:还可以单独遍历Dictionary的键或值

如果不需要同时获取键和值,也可以选择遍历Dictionary的键集合或值集合:

  • 遍历键:
foreach(int key in dictionaryobject.Keys)
{
    // 处理键逻辑
}
  • 遍历值:
foreach(string value in dictionaryobject.Values)
{
    // 处理值逻辑
}

内容的提问来源于stack exchange,提问作者AB_ OBADA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 11:32:02