map函数在c#中对两个集合进行操作

时间:2015-10-24 22:38:43

标签: c# linq

我需要一个map函数来操作两个集合(序列),如下所示:

map((col1Item, col2Item) => { col1Item.text.contains(col2Item); }, col1, col2) 

我知道C#有Enumerable.Select,但它接受一个集合。是否有“不止一个集合”替代品?

更新

我目前的解决方案如下:

if (elements.Select ((element, index) => { element.Text.Contains (expectedTexts[index]); }).All ( res => res == true)) { // do something if texts of each element from elements seq contains correspondent text from expectedTexts seq }

虽然我仍然对更经典的“功能风格”替代品感到好奇。

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找IEnumerable.Zip。这需要两个IEnumerable实例,将函数应用于每个元素的相同索引处的元素,从而生成结果集合。例如:

IEnumerable<string> a;
IEnumerable<string> b;

// result will contain the concatenated strings
IEnumerable<string> result = a.Zip(b, (fromA, fromB) => fromA + fromB);