LINQ 按多个字段排序(orderby、thenby、Take)-阿里云开发者社区

开发者社区> fuyifang> 正文

LINQ 按多个字段排序(orderby、thenby、Take)

简介: LINQ 按多个字段排序(orderby、thenby、Take) orderby  子句解析为 OrderBy()方法,orderby descending 子句解析为OrderBy Descending()方法: var racers = Formula1.
+关注继续查看

LINQ 按多个字段排序(orderby、thenby、Take)

orderby  子句解析为 OrderBy()方法,orderby descending 子句解析为OrderBy Descending()方法:

var racers = Formula1.GetChampions().
Where(r = > r.Country == "Brazil").
OrderByDescending(r = > r.Wins).
Select(r = > r);

OrderBy()升序  和 OrderByDescending() 降序 方法返回 IOrderEnumerable。这个接口派生于接口
IEnumerable,但包含一个额外的方法CreateOrderedEnumerable- ()。
这个方法用于进一步给序列排序。

如果根据关键字选择器来排序,两项的顺序相同,就可以使用 ThenBy()和 ThenByDescending  ()方法继续排序。

这两个方法需要 IOrderEnumerable才能工作,但也返回这个接口。

所以,可以添加任意多个 ThenBy()和 ThenByDescending ()方法,对集合排序。

 

使用 LINQ  查询时,只需把所有用于排序的不同关键字(用逗号分隔开)添加到orderby  子句中。

这里,所有的赛手先按照国家排序,再按照姓氏排序,最后按照名字排序。

添加到 LINQ 查询结果中的Take()扩展方法用于提取前 10  个结果:

private static void Ordering() { 
var racers = (from r in Formula1.GetChampions()orderby r.Country, r.LastName, r.FirstName select r).Take(10); 
foreach (var racer inracers) 
{ Console.WriteLine("{0:C}: {0:L}, {0:F}", racer); //属性名的第一个字母 
}
}

Lambda表达式 使用OrderBy()和 ThenBy()方法可以执行相同的操作:

private static void Ordering()
{

var racers = Formula1.GetChampions(). OrderBy(r => r.Country). ThenBy(r => r.LastName). ThenBy(r => r.FirstName). Take(10);
foreach (var racer in racers) 
{
 
Console.WriteLine("{0:C}: {0:L}, {0:F}", racer); //属性名的第一个字母 }

}
//ThenBy() 降序 ThenByDescending升序
var list = _MdDatacubeofjobinfotaskBL.GetListByPage(condition, Pager1.PageSize, Pager1.CurrentPageIndex, beginDate1, endDate1).OrderByDescending(k => 

k.DataChange_CreateTime).ThenBy(k => k.JobinfotaskId);



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
多字段,任意组合条件查询(0建模) - 毫秒级实时圈人 实践
标签 PostgreSQL , 数组 , GIN索引 , 任意字段组合查询 , 圈人 , ToB分析型业务 , 建模 背景 你也许在一家ToB的数据分析公司,你可能设计了一张表(包括用户标识,及若干已经统计好的的属性值),你也许收集了一些用户的数据,你也许要为客户提供报表,你也许需要为客户提供任意属性值的组合查询,并快速的返回结果给用户。
7768 0
javascript 一个关于时间排序的算法(一个页面多个倒计时排序)
上周要做一个活动页面 秒杀列表页 需要一个时间的算法排序 自己琢磨了半天想了各种算法也没搞出来,后来问了下一个后台的php同学 他写了个算法给我看了下 ,刚开始看的时候觉得这就是个纯算法,不能转化成页面的dom效果,可是再看了两遍发现可以 于是我就改了改 实现了 不禁感叹 确实蛮赞的 于是就博一客;...
852 0
MYSQL数据库字母数字混合字段排序问题
对MySQL数据表里的一个字符型字段排序,其内容格式为一位字母+顺序数字。数字没有前导零,长度不固定。这种含字母的数字序列,排序出来的结果和我们想要的结果是不一样的,因为它不是纯数字,只能按字符规则排。
1937 0
用lucene实现在一个(或者多个)字段中查找多个关键字
  最近跟着师兄们做个项目,我的任务就是负责做个“全文检索”的小模块。用到了Lucene的索引,下面的是其中的用Lucene实现在索引的一个字段(比如文章内容字段)进行查找多个关键字的实例代码。   1.Lucene说明   Lucene是非常优秀的成熟的开源的免费的纯java语言的全文索引检索工具包。
1078 0
十大经典排序算法动画与解析,看我就够了!(配代码完全版) | 算法必看系列三十八
排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为 内部排序 和 外部排序 。内部排序是数据记录在内存中进行排序。而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。
1436 0
+关注
fuyifang
携程旅行网技术研发中心资深研发工程师,研发Leader;CSDN博客专家;
260
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载