我有一个文章列表,每篇文章在一个集合中有一个或多个投票。 它是一个实体框架集合,但我认为这不会对问题产生很大影响。 导航是这样的:
Article.Votes,其中Votes是投票对象的集合。 我正在寻找的是Linq声明如何找到票数最多的前5篇文章。 所以1篇文章有100票(Votes集合中的投票对象),3个有90个,1个有88个,4个有78个等等,那么我想选择100,90和88的那些。 文章集合顺便说一句,没有按投票数排序。
此致 米歇尔
答案 0 :(得分:4)
var articles = GetArticleList();
var topArticles = articles.OrderByDescending(a => a.Votes.Count).Take(5);
您需要降序条款才能获得最高的投票文章。
答案 1 :(得分:3)
var top5 = (from a in articles
orderby a.Votes.Count descending
select a).Take(5);
答案 2 :(得分:1)
var top5Articles = listOfArticles.OrderByDescending(a => a.Votes.Count).Take(5);
未经测试,但应该工作......
答案 3 :(得分:0)
怎么样
Articles.OrderByDescending(pArticle => pArticle.Votes.Max(pVote => pVote.Num))
.Take(5)