[英]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.