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

在 C# 编程中,Enumerable.Zip 方法的功能是什么?请说明它如何用于合并两个序列。

考察说明

考查对 LINQ 中 Zip 方法的理解,包括其作用、行为和使用方式。

回答思路

  1. 【回答框架 1】Zip 是 System.Linq 中的扩展方法,用于将两个序列按索引配对,生成一个包含每对元素的序列。它要求两个序列长度可以不同,但结果长度等于较短序列的长度。
  2. 【回答框架 2】它接受两个输入序列和一个结果选择器函数。该函数接收来自两个序列的对应元素作为参数,并返回一个结果对象。例如,将两个整数序列相加或组合成元组。
  3. 【回答框架 3】一个常见用法是合并两个数据源,如将姓名列表和年龄列表关联成人员对象。它提供了一种简洁的方式,避免手动编写循环。
  4. 【回答框架 4】在 C# 中,还可以使用 Zip 的三序列重载,它支持三个序列的合并。
  5. 【回答框架 5】需要注意的是,Zip 会立即执行,如果任一序列为 null,会抛出 ArgumentNullException。
  6. 【关键点 1】Zip 按索引合并两个序列,结果长度等于较短序列的长度。
  7. 【关键点 2】结果选择器用于定义如何组合每对元素。
  8. 【关键点 3】Zip 可用来合并数据源,简化代码。
  9. 【易错点 1】如果序列长度不等,多余的元素被忽略。
  10. 【易错点 2】传入 null 序列会抛出异常。
  11. 【易错点 3】Zip 的结果是延迟执行的,但每次迭代都会重新计算。