Linq使用order by概述
本文向大家介紹Linq使用order by,可能好多人還不了解Linq使用order by,沒有關系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。
1.簡單形式
這個例子Linq使用order by按雇用日期對雇員進行排序:
- 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和order by按運費進行排序。
3.降序排序
- var q =
- from p in db.Products
- orderby p.UnitPrice descending
- select p;
4.ThenBy
語句描述:Linq使用order by對客戶進行排序:
- var q =
- from c in db.Customers
- orderby c.City, c.ContactName
- select c;
5.ThenByDescending
這兩個擴展方式都是用在order by/order byDescending之后的,第一個ThenBy/ThenByDescending擴展方法作為第二位排序依據,第二個ThenBy/ThenByDescending則作為第三位排序依據,以此類推
- var q =
- from o in db.Orders
- where o.EmployeeID == 1
- orderby o.ShipCountry, o.Freight descending
- select o;
語句描述:Linq使用order by先按發往國家再按運費從高到低的順序對 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
- };
語句描述:Linq使用order by、Max 和 Group By 得出每種類別中單價最高的產品,并按 CategoryID 對這組產品進行排序。
【編輯推薦】