我有以下的 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) }
目前结果按照用户ID升序排序。我需要按得分降序排序。
谢谢 :)
我有以下的 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) }
目前结果按照用户ID升序排序。我需要按得分降序排序。
谢谢 :)
只需添加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 };
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);
希望这个能解决你的问题,比顶部那个方法更简单 ;)
祝好