Skip to main content
 首页 » 编程设计

c#之如何在 LinQ 中合并多个集合

2024年02月03日25leader

我在 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 .