要对序列排序,前面使用了orderby 子句。这里使用 orderby descending 子句。其中赛车手按照赢得比赛的次数进行降序排序,赢得比赛的次数用关键字选择器指定:.
static void SortDescending()
{
var racers = from r in Formulal.GetChampions()
where r.Country == "Brazil"
orderby r.Wins descending
select r;
//...
}
orderby 子句解析为 OrderBy() 方法, orderby descending 子句解析为 OrderByDescending()方法:
static void SortDescendingWithMethods()
{
var racers = Formulal.GetChampions()
.Where(r => r.Country == "Brazil")
.OrderByDescending(r => r.Wins)
.Select(r => r);
//..
}
使用 LINQ 查询时,只需要把所有用于排序的不同关键字(用逗号分隔开)添加到 orderby 子句中。在下例中,所有的赛车手先按照国家排序,再按照姓氏排序,最后按照名字排序。添加到 LINQ 查询结果中的 Take() 扩展方法用于返回前 10 个结果:
static void SortMultiple()
{
var racers = (fromr in Formulal.GetChampions()
orderby r.Country, r.LastName, r.FirstName
select r).Take(10);
//...
}