用C#组合两个列表

Ant*_*ine 2 c#

在OCaml中,有一个函数,它接受两个相同大小的列表并返回一个元组列表:

val combine : 'a list -> 'b list -> ('a * 'b) list
Run Code Online (Sandbox Code Playgroud)

C#中有类似的东西吗?

我对输出的类型没有强烈的要求.它可以是元组列表,也可以是字典.

dca*_*tro 7

Enumerable.Zip扩展方法.第二个参数告诉方法如何处理每对元素.

IEnumerable<Tuple<int, int>> pairs = a.Zip(b, Tuple.Create);

IEnumerable<int> sums = a.Zip(b, (x, y) => x + y);
Run Code Online (Sandbox Code Playgroud)

如果一个集合大于另一个集合,则将忽略较大集合的其余元素.