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

请说明在 C# 编程语言中,把数组转换为 List 的具体做法是什么?

考察说明

考查对 C# 中数组与 List 转换方法的掌握程度。

回答思路

  1. 【回答框架 1】可以使用 LINQ 的 ToList 扩展方法,该方法位于 System.Linq 命名空间下,适用于任何 IEnumerable 类型,数组作为 IEnumerable 可以直接调用,例如 array.ToList()。
  2. 【回答框架 2】也可以使用 List 的构造函数,即 new List<T>(array),这种方式直接以数组元素初始化列表,无需引入额外命名空间。
  3. 【回答框架 3】两者在功能上等价,但 ToList 需要引入 System.Linq,且内部可能涉及延迟执行;构造函数则更直接,对于简单转换推荐使用构造函数。
  4. 【回答框架 4】转换后得到的是一个新的 List 实例,与原数组相互独立,修改列表不会影响原数组。
  5. 【回答框架 5】如果数组元素是值类型,转换时元素会复制;若为引用类型,则复制引用。
  6. 【关键点 1】使用 new List<T>(array) 是无需额外命名空间的直接方式。
  7. 【关键点 2】array.ToList() 依赖于 System.Linq,适用于任意 IEnumerable。
  8. 【关键点 3】转换结果是一个独立的新列表,修改互不影响。
  9. 【易错点 1】不要忘记在使用 ToList 时引入 System.Linq 命名空间。
  10. 【易错点 2】对于大型数组,两者创建新列表都会占用额外内存,但通常可忽略。