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



目录
相关文章
|
11月前
orderBy排序,null在最后
orderBy排序,null在最后
188 0
|
6月前
|
SQL 开发框架 .NET
C#进阶-LINQ表达式之GroupBy分组查询
本篇文章我们将演示LINQ扩展包基础语法里的GroupBy分组查询,并实现投影等实际操作中常用的类型转换手法。目前LINQ支持两种语法,我会在每个案例前先用大家熟知的SQL语句表达,再在后面用C#的两种LINQ语法分别实现。LINQ语法第一次接触难免感到陌生,最好的学习方式就是在项目中多去使用,相信会有很多感悟。
265 0
|
SQL
ORDER BY:对查询结果进行排序
ORDER BY:对查询结果进行排序
108 0
|
SQL 算法 搜索推荐
为排序使用索引 OrderBy 优化|学习笔记
快速学习为排序使用索引 OrderBy 优化
198 0
为排序使用索引 OrderBy 优化|学习笔记
|
.NET 开发框架
linq Distinct 去除重复数据
转载:http://www.cnblogs.com/ldp615/archive/2011/08/01/distinct-entension.html 只可惜linq默认不支持.Distinct(p => p.ID); 试想如果能写成下面的样子,是不是更简单优雅: var p1 = products.Distinct(p => p.ID); var p2 = products.Distinct(p => p.Name);  使用一个简单的 lambda 作为参数,也符合 Linq 一贯的风格。
1352 0
|
算法 搜索推荐 关系型数据库
Orderby 排序优化
在日常的业务开发中,order by 排序是少不了的。但要写出高效的排序SQL,需要先花点精力和时间来了解排序的底层原理,这样才能找到优化排序的好策略。
1303 0
Orderby 排序优化
|
SQL .NET
ALinq 入门学习(七)--OrderBy 排序查询
好些天没有写文章了,博客园也发生了很多变化。最近园子里面火药味越来越浓了。有时候看着想过去发表一下自己的观点,仔细想想还是算了,我不想被卷入这个漩涡中。还是老老实实写自己的文章,记录一下自己所学的东西,学习别人的程序的思考方式,分享一下自己的学习经验。
922 0
|
.NET 开发框架