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

List 动态列表

List 已掌握。下一课学键值对集合 Dictionary。

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

🎯本节学习目标

  • 掌握 List 创建
  • 掌握增删改查方法
  • 理解与数组的区别

🚀课程导读

数组长度固定,但游戏中“敌人数量会变”。List 是“能自动伸缩的数组”,游戏开发使用频率极高。

List 基础

先学会创建与添加。

  1. List 需要引入命名空间:在脚本顶部写 using System.Collections.Generic;
  2. 创建语法:List<int> scores = new List<int>();(尖括号里是元素类型)
  3. 【添加元素】:scores.Add(90); scores.Add(80);
  4. 【获取元素个数】:scores.Count(注意是 Count 不是 Length)。
  5. 【访问元素】:scores[0] 与数组类似。
  6. 【插入】:scores.Insert(1, 85); // 在下标 1 处插入 85
  7. 【删除】:scores.Remove(90); // 删除值为 90 的第一个元素;scores.RemoveAt(0); // 按下标删除
  8. 【清空】:scores.Clear();
  9. 【判断包含】:scores.Contains(80) 返回 bool。
💡
List 元素类型几乎可以是任何东西,包括 GameObject、你自己的类:List<GameObject> enemies = new List<GameObject>();

遍历与实战

管理一个敌人列表。

  1. 遍历:foreach (int s in scores) { Debug.Log(s); } 或 for (int i = 0; i < scores.Count; i++)。
  2. 【实战】新建脚本 ListDemo:声明 List<GameObject> enemies = new List<GameObject>();
  3. 在 Start 里用 for 生成 5 个方块并加入列表:enemies.Add(GameObject.CreatePrimitive(PrimitiveType.Cube));
  4. 打印:Debug.Log("敌人数量:" + enemies.Count);
  5. 删除最后一个:enemies.RemoveAt(enemies.Count - 1);
  6. 遍历打印每个敌人的名字:foreach (GameObject e in enemies) { Debug.Log(e.name); }
  7. 【注意】删除时 foreach 会报错,改用 for 倒序删除(进阶技巧)。
List 是游戏开发最常用的集合,务必熟练:Add / Remove / Count / 下标访问 / foreach 遍历。

常见错误与排查

错误:找不到 List 类型?
原因:缺命名空间
解决:在脚本顶部加 using System.Collections.Generic;

动手练习

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

  • 创建一个 List<string> 添加三个玩家名字并遍历打印
  • 在中间插入一个名字,再删除一个
  • 用 List<GameObject> 管理场景中的物体并统计数量

本节小结

List 已掌握。下一课学键值对集合 Dictionary。

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

← 上一课数组 Array