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

在 C# 编程中,有哪些常见方法可以将两个集合合并为一个新的集合?请给出具体的实现方式或示例。

技术原理方案权衡C#LINQ

考察说明

考查对 C# 集合合并常用方法及其适用场景的掌握程度。

回答思路

  1. 【回答框架 1】在 C# 中合并两个集合,最基础的方法是使用 LINQ 的 Concat 或 Union 方法。Concat 用于简单拼接两个序列,保留所有元素包括重复项;Union 则去重,返回两个集合的并集。两者都返回 IEnumerable<T>,可通过 ToList 或 ToArray 转换为具体集合。
  2. 【回答框架 2】对于 List<T> 这类可写集合,可直接使用 AddRange 方法,将一个集合的所有元素添加到另一个集合末尾,修改原集合。此方法性能高,不产生中间对象。
  3. 【回答框架 3】若需合并后排序或进行更复杂的操作,可用 LINQ 的 Concat 后接 OrderBy 等查询操作。若合并的是数组,可用 LINQ 的 Concat 或手动复制到新数组,如 Array.Copy。
  4. 【回答框架 4】合并两个集合时需注意元素类型是否一致,若类型不同需考虑类型转换或使用非泛型集合,但建议使用泛型集合保证类型安全。另外,Concat 和 Union 是延迟执行,实际枚举时才执行操作,多次枚举可能造成重复计算。
  5. 【关键点 1】LINQ 的 Concat 简单拼接,保留重复;Union 去重,返回并集。
  6. 【关键点 2】List<T>.AddRange 直接修改原集合,性能好。
  7. 【关键点 3】处理数组时可用 Concat 或手动复制。
  8. 【关键点 4】注意类型一致性和延迟执行特性。