适用场景:对查询出的语句进行排序,比如按时间排序等等。

说明:按指定表达式对集合排序;延迟,:按指定表达式对集合排序;延迟,默认是升序,加上descending表示降序,对应的扩展方法是OrderBy和OrderByDescending

1.简单形式

这个例子使用 orderby 按雇用日期对雇员进行排序:

var q = from e in db.Employees orderby e.HireDate select e;

说明:默认为升序

2.带条件形式

注意:Where和Order By的顺序并不重要。而在T-SQL中,Where和Order By有严格的位置限制。

var q = from o in db.Orders where o.ShipCity == "London" orderby o.Freight select o;

语句描述:使用where和orderby按运费进行排序。

3.降序排序

var q = from p in db.Products orderby p.UnitPrice descending select p;

4.ThenBy

语句描述:使用复合的 orderby 对客户进行排序,进行排序:

var q = from c in db.Customers orderby c.City, c.ContactName select c;

说明:按多个表达式进行排序,例如先按City排序,当City相同时,按ContactName排序。这一句用Lambda表达式像这样写:

var q = db.Customers .OrderBy(c => c.City) .ThenBy(c => c.ContactName).ToList();

在T-SQL中没有ThenBy语句,其依然翻译为OrderBy,所以也可以用下面语句来表达:

var q = db.Customers .OrderBy(c => c.ContactName) .OrderBy(c => c.City).ToList();

所要注意的是,多个OrderBy操作时,级连方式是按逆序。对于降序的,用相应的降序操作符替换即可。

var q = db.Customers .OrderByDescending(c => c.City) .ThenByDescending(c => c.ContactName).ToList();

需要说明的是,OrderBy操作,不支持按type排序,也不支持匿名类。比如

var q = db.Customers .OrderBy(c => new { c.City, c.ContactName }).ToList();

会被抛出异常。错误是前面的操作有匿名类,再跟OrderBy时,比较的是类别。比如

var q = db.Customers .Select(c => new     { c.City, c.Address }) .OrderBy(c => c).ToList();

如果你想使用OrderBy(c => c),其前提条件是,前面步骤中,所产生的对象的类别必须为C#语言的基本类型。比如下句,这里City为string类型。

var q = db.Customers .Select(c => c.City) .OrderBy(c => c).ToList();

5.ThenByDescending

这两个扩展方式都是用在OrderBy/OrderByDescending之后的,第一个ThenBy/ThenByDescending扩展方法作为第二位排序依据,第二个ThenBy/ThenByDescending则作为第三位排序依据,以此类推

var q = from o in db.Orders where o.EmployeeID == 1 orderby o.ShipCountry, o.Freight descending select o;

语句描述:使用orderby先按发往国家再按运费从高到低的顺序对 EmployeeID 1 的订单进行排序。

6.带GroupBy形式

var q = from p in db.Products group p by p.CategoryID into g orderby g.Key select new { g.Key, MostExpensiveProducts = from p2 in g where p2.UnitPrice == g.Max(p3 => p3.UnitPrice) select p2 };

语句描述:使用orderby、Max 和 Group By 得出每种类别中单价最高的产品,并按 CategoryID 对这组产品进行排序。

[转自]:http://www.cnblogs.com/vingi/articles/2450482.html

转载于:https://www.cnblogs.com/yongtaiyu/p/4611055.html

Linq-Order By操作相关推荐

  1. ORACLE 10G以后的ORDER BY操作优化

    最近系统上线,经常发现有ORDER BY操作的查询缓慢,观察执行计划发现,优化器进行了ORDER BY 列上的索引INDEX FULL SCAN操作且执行计划少了SORT ORDER BY操作. SQ ...

  2. LINQ系列:LINQ to XML操作

    LINQ to XML操作XML文件的方法,如创建XML文件.添加新的元素到XML文件中.修改XML文件中的元素.删除XML文件中的元素等. 1. 创建XML文件 string xmlFilePath ...

  3. LINQ:进阶 - LINQ 标准查询操作概述

    "标准查询运算符"是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> 接口或 I ...

  4. Linq常用List操作总结,ForEach、分页、交并集、去重、SelectMany等

    1 /* 2 以下围绕Person类实现,Person类只有Name和Age两个属性 3 一.List<T>排序 4 1.1 List<T>提供了很多排序方法,sort(),O ...

  5. LINQ Order by 排序

    2019独角兽企业重金招聘Python工程师标准>>> http://www.cnblogs.com/dekevin/p/5639783.html 转载于:https://my.os ...

  6. linq to xml 操作sitemap

    刚开始用xml去做没有弄好,折腾了好久成功了,先仓促的记一下 protected void btnAdd_Click(object sender, EventArgs e)     {         ...

  7. LINQ to XML 操作XML文档

    使用 XDocument 对象的 Element 方法,获取制定层次结构中指定一个元素的值 public void MyDocElement(){XDocument xdoc = XDocument. ...

  8. LINQ体验(6)——LINQ to SQL语句之Join和Order By

    LINQ体验(6)--LINQ to SQL语句之Join和Order By Join操作 适用场景:在我们表关系中有一对一关系,一对多关系,多对多关系等.对各个表之间的关系,就用这些实现对多个表的操 ...

  9. LINQ之Order By

    LINQ之Order By Order By操作 适用场景:对查询出的语句进行排序,比如按时间排序等等. 说明:按指定表达式对集合排序:延迟,:按指定表达式对集合排序:延迟,默认是升序,加上desce ...

  10. LINQ体验(6)——LINQ语句之Join和Order By

    Join操作 适用场景:在我们表关系中有一对一关系,一对多关系,多对多关系等.对各个表之间的关系,就用这些实现对多个表的操作. 说明:在Join操作中,分别为Join(Join查询), SelectM ...

最新文章

  1. 可视化经验分享 | 赠书
  2. 操作系统实验4—磁盘调度
  3. javascript中setTimeout()函数
  4. 统计学习导论 基于R应用——作业 3
  5. 进程隐藏与进程保护(SSDT Hook 实现)(三)
  6. Product Distribution chain id F4 value help的实现
  7. Codeforces Round #663 (Div. 2)
  8. gorm软删除_gorm的简单使用和注意事项
  9. GPT-J 自然语言处理 AI 模型
  10. Window10上使用Git与Github远程仓库互连
  11. thinkphp 助手函数url不生成https_关于ThinkPHP的一些渗透方式
  12. 邮件服务器备案,关于企业邮箱域名备案事项通知
  13. python爬取付费音乐包_Python 收费、高品质无损音乐下载【开源】
  14. 锐捷交换机常用命令速查
  15. Unity设置相机正交相机和透视相机的动态切换
  16. JavaWeb——动态 web 资源开发
  17. linux操作系统没声音,Linux系统下没有声音的解决方案
  18. 走近棒球运动·休斯敦太空人队·MLB棒球创造营
  19. 外媒曝光:小米新奇想专利让超广角拍摄不失真
  20. 【12月19日】传媒行业的股票排名

热门文章

  1. 解决若依部署出现:Error: Cannot find module ‘xxxx‘
  2. Spring 框架RCE 安全漏洞及解决方式
  3. android 加载layout,Android自定义View加载视图之LoadingLayout
  4. 10截图时屏幕变大_最全的MAC端截图工具推荐,寻找适合自己的截图工具
  5. 计算机考研考833的院校,太原理工大学
  6. 使用Git命令从远程仓库获取项目代码
  7. JVM内存分配与垃圾回收
  8. android 内存溢出检查,Android Handler使用导致内存溢出附带LeakCanary排查
  9. pxe安装linux dhcp失败,利用PXE自动化安装Centos时启动DHCP服务时遇到错误,请求大佬指教...
  10. traceroute显示*号_traceroute 的名词解释