Linq:获得最高票数的文章

时间:2009-06-11 20:46:51

标签: c# linq

我有一个文章列表,每篇文章在一个集合中有一个或多个投票。 它是一个实体框架集合,但我认为这不会对问题产生很大影响。 导航是这样的:

Article.Votes,其中Votes是投票对象的集合。 我正在寻找的是Linq声明如何找到票数最多的前5篇文章。 所以1篇文章有100票(Votes集合中的投票对象),3个有90个,1个有88个,4个有78个等等,那么我想选择100,90和88的那些。 文章集合顺便说一句,没有按投票数排序。

此致 米歇尔

4 个答案:

答案 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)