簡體   English   中英

從Linq中的每個組中檢索n個項目

[英]Retrieve n items from each group in linq

我在該站點上搜索了更多“從每個組中獲取4個頂級項目”,但是有很多關於從每個組中獲取第一項的主題

var rr = db.Products
           .GroupBy(x => x.ProductSubTypeCategoryId, (key, g) => g.OrderBy(e => e.PersianName)
           .Take(4).ToList());

要么

var rr = db.Products
           .GroupBy(x => x.ProductSubTypeCategoryId).Select(g => new { pname = g.Key, count = g.Count() });

但只返回每個組的第一項。 如何更改代碼以從每個組中獲取4個項目?

嘗試這個:

var rr = db.Products.GroupBy(x => x.ProductSubTypeCategoryId).Select(g => new { GroupName = g.Key, Items = g.Take(4).ToList() });

這應該為您提供一個匿名對象,該對象的GroupName屬性返回ProductSubTypeCategoryId,而Items屬性則返回每個組最多4個項目的列表。

使用SelectMany()嘗試類似的事情

var rr = db.Products
       .GroupBy(x => x.ProductSubTypeCategoryId)
       .SelectMany(g => g.OrderBy(e => e.PersianName).Take(4))
       .ToList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM