Linq使用order by概述
本文向大家介紹Linq使用order by,可能好多人還不了解Linq使用order by,沒有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。
1.簡單形式
這個(gè)例子Linq使用order by按雇用日期對雇員進(jìn)行排序:
- var q =
- from e in db.Employees
- orderby e.HireDate
- select e;
2.帶條件形式
注意:Where和order by的順序并不重要。而在T-SQL中,Where和order by有嚴(yán)格的位置限制。
- var q =
- from o in db.Orders
- where o.ShipCity == "London"
- orderby o.Freight
- select o;
語句描述:使用where和order by按運(yùn)費(fèi)進(jìn)行排序。
3.降序排序
- var q =
- from p in db.Products
- orderby p.UnitPrice descending
- select p;
4.ThenBy
語句描述:Linq使用order by對客戶進(jìn)行排序:
- var q =
- from c in db.Customers
- orderby c.City, c.ContactName
- select c;
5.ThenByDescending
這兩個(gè)擴(kuò)展方式都是用在order by/order byDescending之后的,第一個(gè)ThenBy/ThenByDescending擴(kuò)展方法作為第二位排序依據(jù),第二個(gè)ThenBy/ThenByDescending則作為第三位排序依據(jù),以此類推
- var q =
- from o in db.Orders
- where o.EmployeeID == 1
- orderby o.ShipCountry, o.Freight descending
- select o;
語句描述:Linq使用order by先按發(fā)往國家再按運(yùn)費(fèi)從高到低的順序?qū)?EmployeeID 1 的訂單進(jìn)行排序。
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 得出每種類別中單價(jià)最高的產(chǎn)品,并按 CategoryID 對這組產(chǎn)品進(jìn)行排序。
【編輯推薦】