C#面试题更新 2026-08-05

在 C# 编程中,你会采用什么方式来创建 Dictionary 实例并对其中的键值对进行遍历?

技术原理C#

考察说明

考查 C# 中 Dictionary 的初始化语法和遍历方式。

回答思路

  1. 【回答框架 1】Dictionary<TKey, TValue> 是 C# 中常用的键值对集合。初始化方式包括:通过 new Dictionary<TKey, TValue>() 创建空字典,通过集合初始化器添加键值对,或通过 new Dictionary<TKey, TValue>(IDictionary<TKey, TValue>) 从现有字典复制。
  2. 【回答框架 2】遍历 Dictionary 可使用 foreach (var kvp in dict) 循环,其中 kvp 是 KeyValuePair<TKey, TValue> 类型,可访问 kvp.Key 和 kvp.Value。也可通过 Keys 或 Values 属性遍历键或值,但需注意单独遍历键或值时无法同时获取对应值。
  3. 【回答框架 3】如果需要修改遍历中的集合,不能直接在 foreach 中修改键或值,应通过键访问方式 dict[key] = newValue 更新值,或先收集需要修改的键,再在循环外进行修改。
  4. 【关键点 1】Dictionary 采用键值对形式,key 是唯一的。
  5. 【关键点 2】初始化可使用 new、集合初始化器或从其他字典构造。
  6. 【关键点 3】遍历用 foreach 与 KeyValuePair,也可遍历 Keys 或 Values。
  7. 【关键点 4】遍历时不能直接修改集合结构,但可以更新现有键的值。
  8. 【易错点 1】遍历时修改字典结构(如添加或删除元素)会导致异常。
  9. 【易错点 2】使用 foreach 遍历 Keys 再通过 dict[key] 访问值时,如果遇到不存在的键会抛出异常。
  10. 【易错点 3】在遍历过程中通过索引器更新值属于修改集合,但不会导致 InvalidOperationException,需注意语义。