LINQ系列:Linq to Object排序操作符
来源:互联网 发布:少儿编程培训内容 编辑:程序博客网 时间:2024/06/10 18:29
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.Products orderby p.ProductID select p;
IEnumerable<Product> products = context.Products.OrderBy(p => p.ProductID);
当扩展方法中有多个OrderBy操作符出现时,LINQ不会提示错误,将会以最后出现的OrderBy属性进行排序。
var products = context.Products .OrderBy(p => p.ProductID) .OrderBy(p => p.ProductName);
上面的例子中将按照ProductName进行升序排序。
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.Products orderby p.ProductID descending select p;
var products = context.Products.OrderByDescending(p => p.ProductID);
3. ThenBy
在使用ThenBy操作符之前,扩展方法表达式中必须有OrderBy或OrderByDescending。ThenBy可以多次出现,排序字段累加。
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.Products orderby p.ProductID, p.ProductName select 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.Products orderby p.ProductID, p.ProductName descending select 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 weekdays select weekday;foreach (var item in expr.Reverse()){ Console.WriteLine(item);}
阅读全文
0 0
- LINQ系列:Linq to Object排序操作符
- LINQ系列:Linq to Object排序操作符
- LINQ系列:Linq to Object投影操作符
- LINQ系列:Linq to Object限制操作符
- LINQ系列:Linq to Object限制操作符
- LINQ系列:Linq to Object联接操作符
- LINQ系列:Linq to Object分组操作符
- LINQ系列:Linq to Object串联操作符
- LINQ系列:Linq to Object聚合操作符
- LINQ系列:Linq to Object集合操作符
- LINQ系列:Linq to Object生成操作符
- LINQ系列:Linq to Object转换操作符
- LINQ系列:Linq to Object元素操作符
- LINQ系列:Linq to Object相等操作符
- LINQ系列:Linq to Object量词操作符
- LINQ系列:Linq to Object分区操作符
- LINQ系列:LINQ to XML操作
- LINQ to OBJECT语句之Join操作符的使用
- PAT乙级 1053. 住房空置率 (20)
- 离散化特征的方法
- 漫步最优化三——优化算法的一般结构
- 网站第三方登录(php版)
- 8位并入,1位串出的移位寄存器
- LINQ系列:Linq to Object排序操作符
- Python小项目三:用curses实现2048
- webpack(二) loader的使用
- ROC和AUC
- 洛谷P1576 最小花费
- Java+Selenium3方法篇34-如何处理日历控件
- 十九、命令模式——设计模式学习笔记
- 线性回归和逻辑回归
- gcd and exgcd