我有一个集合.我需要通过"A"属性对集合进行分组.我必须用"B"属性对每个组进行排序.然后从每组中选择前5.
任何人都可以为此建议LINQ查询?
我尝试的方式不起作用.
(from item in Recipes
orderby item.Rating descending
group item by item.MainCategory).Take(5)
Run Code Online (Sandbox Code Playgroud)
查询应该返回 IEnumerable<IGrouping<string, myrecipetype>>
你正在前五组.相反,您需要从每个组中选择前五个项目:
from item in Recipes
orderby item.Rating descending
group item by item.MainCategory into g
select g.Take(5)
Run Code Online (Sandbox Code Playgroud)
更新:
from item in Recipes
orderby item.Rating descending
group item by item.MainCategory into g
select g.Take(5).GroupBy(item => item.MainCategory).First()
Run Code Online (Sandbox Code Playgroud)