web-dev-qa-db-fra.com

Comment puis-je commander un résultat de groupe, à Linq?

J'ai la requête linq suivante, qui fonctionne très bien. Je ne sais pas comment j'ordonne le résultat du groupe.

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) }

les résultats sont actuellement classés par UserId croissant. Je suis après que Score descende.

merci :)

40
Pure.Krome

Ajoutez simplement la clause 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 };
65
Arjan Einbu
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);

J'espère que cela résoudra votre problème, plus facilement que celui du haut;)

À votre santé

13