本文向大家介绍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 对这组产品进行排序。
【编辑推荐】