在OCaml中,有一个函数可以获取两个相同大小的列表并返回一个元组列表:
val combine : 'a list -> 'b list -> ('a * 'b) list
C#中有类似内容吗?
我对输出的类型没有强烈的要求。它可以是元组列表,也可以是字典。
答案 0 :(得分:7)
有Enumerable.Zip
扩展方法。第二个参数告诉方法如何处理每对元素。
IEnumerable<Tuple<int, int>> pairs = a.Zip(b, Tuple.Create);
IEnumerable<int> sums = a.Zip(b, (x, y) => x + y);
如果一个集合比另一个集合大,则忽略较大集合的其余元素。