我想对帖子进行排序,以显示按日期分组的观看次数最多的帖子,以便每天都能看到热门的帖子,然后是下一个,然后是下一个。
如何在linq中编写此查询?基于可能的方法。
答案 0 :(得分:1)
int postsPerDay = 5;
var topPostsByDate = Posts
.GroupBy(post => post.Date)
.Select(grp => new
{
Date = grp.Key,
TopPosts = grp
.OrderByDescending(post => post.Views)
.Take(postsPerDay)
.Select(post => new Post(post))
})
.OrderByDescending(x => x.Date);
编辑:从数据行构造一个新的Post对象。假设Post有一个接受DataRow
的构造函数;改变以适应。