用C#组合两个列表

时间:2014-11-18 15:48:09

标签: c#

在OCaml中,有一个函数可以获取两个相同大小的列表并返回一个元组列表:

val combine : 'a list -> 'b list -> ('a * 'b) list

C#中有类似内容吗?

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

1 个答案:

答案 0 :(得分:7)

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

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

IEnumerable<int> sums = a.Zip(b, (x, y) => x + y);

如果一个集合比另一个集合大,则忽略较大集合的其余元素。