【发布时间】:2010-11-11 22:23:41
【问题描述】:
假设我有一个表 Comments,其中包含以下列:Id、Comment、Category、CreatedDate、CommenterId
我想从 Comments 表中获取前 5 个类别(基于该表中每个类别的计数)。如何在 linq 中执行此操作以返回 List 或 IQueryable?
【问题讨论】:
标签: c# asp.net asp.net-mvc linq entity-framework
假设我有一个表 Comments,其中包含以下列:Id、Comment、Category、CreatedDate、CommenterId
我想从 Comments 表中获取前 5 个类别(基于该表中每个类别的计数)。如何在 linq 中执行此操作以返回 List 或 IQueryable?
【问题讨论】:
标签: c# asp.net asp.net-mvc linq entity-framework
你可以这样使用:
var query = comments
.GroupBy(comment => comment.Category)
.OrderByDescending(g => g.Count())
.Select(g => g.Key)
.Take(5);
【讨论】:
试试这样的:
var topComments = from comment in Comments
group comment by comment.Category into grp
orderby grp.Count() descending
select grp.Key;
var topFive = topComments.Take(5);
【讨论】: