我在 Linq 中有 3 组,如下所示:
struct Index
{
string code;
int indexValue;
}
List<Index> reviews
List<Index> products
List<Index> pages
这些列表有不同的代码。
我想按如下方式合并这些集合:
- 获得评论第一名
- 产品第一
- 排在第一位
- 在评论中排名第二 -...等等,请注意这些列表的大小不同。
我如何在 Linq 中执行此操作?
编辑:等等,在没有 .NET 4.0 的情况下是否有更改来执行此操作?
非常感谢
请您参考如下方法:
你可以使用 Zip执行您的命令。
var trios = reviews
.Zip(products, (r, p) => new { Review = r, Product = p })
.Zip(pages, (rp, p) => new { rp.Review, rp.Product, Page = p });
编辑:
对于 .NET 3.5,可以很容易地实现 Zip:但是有一些问题。 Jon Skeet 有一个关于如何实现 LINQ to objects operators(用于教育目的)的精彩帖子系列,包括 this post, on Zip .整个系列的源码,edulinq,可以在found on Google Code .
