LINQ系列:Linq to Object排序操作符
生活随笔
收集整理的這篇文章主要介紹了
LINQ系列:Linq to Object排序操作符
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
LINQ排序操作符包括:OrderBy、OrderByDescending、ThenBy、ThenByDescending及Reverse。
1. OrderBy
1>. 原型定義
public static IOrderedQueryable<TSource> OrderBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector); public static IOrderedQueryable<TSource> OrderBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IComparer<TKey> comparer);2>. 示例
var products = from p in context.Productsorderby p.ProductIDselect p; IEnumerable<Product> products = context.Products.OrderBy(p => p.ProductID);當(dāng)擴(kuò)展方法中有多個OrderBy操作符出現(xiàn)時,LINQ不會提示錯誤,將會以最后出現(xiàn)的OrderBy屬性進(jìn)行排序。
var products = context.Products.OrderBy(p => p.ProductID).OrderBy(p => p.ProductName);上面的例子中將按照ProductName進(jìn)行升序排序。
2.?OrderByDescending
1>. 原型定義
public static IOrderedQueryable<TSource> OrderByDescending<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector); public static IOrderedQueryable<TSource> OrderByDescending<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IComparer<TKey> comparer);2>. 示例
var products = from p in context.Productsorderby p.ProductID descendingselect p; var products = context.Products.OrderByDescending(p => p.ProductID);3.?ThenBy
在使用ThenBy操作符之前,擴(kuò)展方法表達(dá)式中必須有OrderBy或OrderByDescending。ThenBy可以多次出現(xiàn),排序字段累加。
1>. 原型定義
public static IOrderedQueryable<TSource> ThenBy<TSource, TKey>(this IOrderedQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector); public static IOrderedQueryable<TSource> ThenBy<TSource, TKey>(this IOrderedQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IComparer<TKey> comparer);2>. 示例
var products = from p in context.Productsorderby p.ProductID, p.ProductNameselect p; var products = context.Products.OrderBy(p => p.ProductID).ThenBy(p => p.ProductName); var products = context.Products.OrderBy(p => p.ProductID).ThenBy(p => p.ProductName).ThenBy(p => p.UnitPrice);4.?ThenByDescending
1>. 原型定義
public static IOrderedQueryable<TSource> ThenByDescending<TSource, TKey>(this IOrderedQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector); public static IOrderedQueryable<TSource> ThenByDescending<TSource, TKey>(this IOrderedQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IComparer<TKey> comparer);2>. 示例
var products = from p in context.Productsorderby p.ProductID, p.ProductName descendingselect p; var products = context.Products.OrderBy(p => p.ProductID).ThenByDescending(p => p.ProductName).Select(p => p);5. Reverse
1>.原型定義
public static IEnumerable<TSource> Reverse<TSource>(this IEnumerable<TSource> source);2>. 示例
string[] weekdays = new string[] { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; var expr = from weekday in weekdaysselect weekday;foreach (var item in expr.Reverse()) {Console.WriteLine(item); }總結(jié)
以上是生活随笔為你收集整理的LINQ系列:Linq to Object排序操作符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到他人怀孕了什么意思
- 下一篇: 梦到自己有个女儿好几岁了