首页/ 第 5 章 · C# 编程基础/ 第 59 课
LESSON 59 · C# 编程基础

字典 Dictionary

字典已掌握。下一课学字符串 String 的常用操作。

⏱ 约 14 分钟📊 难度:入门🗂 第 5 章 · C# 编程基础📍 第 59 / 300 课
课程进度
59 / 300

🎯本节学习目标

  • 理解键值对概念
  • 掌握字典增删改查
  • 掌握字典遍历

🚀课程导读

List 按下标找元素,但你想“按名字找数据”呢?字典(Dictionary)用“钥匙-值”配对,查找极快。

字典基础

“钥匙”开“抽屉”。

  1. 需要 using System.Collections.Generic;
  2. 创建语法:Dictionary<string, int> scores = new Dictionary<string, int>();
  3. 尖括号里第一个是“键 Key”类型,第二个是“值 Value”类型。
  4. 【添加】:scores["小明"] = 90; 或 scores.Add("小红", 85);
  5. 【取值】:int s = scores["小明"]; // 得 90
  6. 【判断键存在】:scores.ContainsKey("小明") 返回 bool,取之前先判断防报错。
  7. 【删除】:scores.Remove("小红");
  8. 【元素个数】:scores.Count。
  9. 【改值】:scores["小明"] = 95;(键已存在则覆盖)。
取不存在的键(scores["不存在"]) 会抛异常崩溃!取值前先用 ContainsKey 判断。

遍历与实战

遍历键值对。

  1. 遍历所有键值对:foreach (KeyValuePair<string, int> kv in scores) { Debug.Log(kv.Key + ":" + kv.Value); }
  2. 或遍历所有键:foreach (string name in scores.Keys) { ... };遍历所有值:scores.Values。
  3. 【实战】游戏物品背包:Dictionary<string, int> inventory = new Dictionary<string, int>();
  4. inventory["金币"] = 100; inventory["药水"] = 5;
  5. 加金币:inventory["金币"] += 50;
  6. 打印背包内容:foreach (var kv in inventory) { Debug.Log(kv.Key + " x" + kv.Value); }
  7. 【适合场景】按名字查配置、玩家数据、成就表等。
  8. 字典内部无序,遍历顺序不保证插入顺序。
💡
用 var 可以简化声明:foreach (var kv in inventory)。var 让编译器推断类型。

常见错误与排查

错误:报错:KeyNotFoundException?
原因:取了不存在的键
解决:取值前用 ContainsKey 判断,或用 TryGetValue(更高效)。

动手练习

课后小任务(做出来才算真的学会)

  • 创建一个 Dictionary<string,int> 存 3 个物品数量
  • 给“金币”增加 100 并打印
  • 遍历打印所有键值对

本节小结

字典已掌握。下一课学字符串 String 的常用操作。

完成打卡后,主站会实时更新你的学习进度 🎯

← 上一课List 动态列表