Linq使用order by概述

本文向大家介绍Linq使用order by,可能好多人还不了解Linq使用order by,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。

1.简单形式

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

 
 
 
  1. var q =  
  2. from e in db.Employees  
  3. orderby e.HireDate  
  4. select e; 

2.带条件形式

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

 
 
 
  1. var q =  
  2. from o in db.Orders  
  3. where o.ShipCity == "London"  
  4. orderby o.Freight  
  5. select o; 

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

3.降序排序

 
 
 
  1. var q =   
  2. from p in db.Products  
  3. orderby p.UnitPrice descending  
  4. select p; 

4.ThenBy

语句描述:Linq使用order by对客户进行排序:

 
 
 
  1. var q =  
  2. from c in db.Customers  
  3. orderby c.City, c.ContactName  
  4. select c; 

5.ThenByDescending

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

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

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

6.带GroupBy形式

 
 
 
  1. var q =   
  2. from p in db.Products  
  3. group p by p.CategoryID into g  
  4. orderby g.Key  
  5. select new {  
  6. g.Key,  
  7. MostExpensiveProducts =  
  8. from p2 in g  
  9. where p2.UnitPrice == g.Max(p3 => p3.UnitPrice)  
  10. select p2  
  11. }; 

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

【编辑推荐】

  1. LINQ查询操作经验总结
  2. LINQ遍历多个数组深入剖析
  3. Linq查询Access数据文件浅谈
  4. LINQ构建框架设计学习笔记
  5. LINQ重要组成部分简介
THE END