Как заказать групповой результат в Linq? - PullRequest
40 голосов
/ 16 апреля 2009

У меня есть следующий запрос linq, который отлично работает. Я не уверен, как я могу заказать результат группы.

from a in Audits
join u in Users on a.UserId equals u.UserId
group a by a.UserId into g
select new { UserId = g.Key, Score = g.Sum(x => x.Score) }

результаты в настоящее время упорядочены по возрастанию UserId. Я за счетом по убыванию.

спасибо:)

Ответы [ 2 ]

65 голосов
/ 16 апреля 2009

Просто добавьте предложение orderby; -)

from a in Audits
join u in Users on a.UserId equals u.UserId
group a by a.UserId into g
let score = g.Sum(x => x.Score)
orderby score descending
select new { UserId = g.Key, Score = score };
13 голосов
/ 16 апреля 2009
var results =
 (from a in Audits
join u in Users on a.UserId equals u.UserId
group a by a.UserId into g
select new { UserId = g.Key, Score = g.Sum(x => x.Score) })
.OrderByDescending(p=>p.Score);

Надеюсь, это решит вашу проблему, проще, чем верхняя;)

Приветствия

...