通过orderby关键字,LINQ可以实现升序和降序排序。LINQ还支持次要排序。
通过orderby关键字,LINQ可以实现升序和降序排序。LINQ还支持次要排序。
LINQ默认的排序是升序排序,如果你想使用降序排序,就要使用descending关键字。
static void Main(string[] args)
{
var dicts = new Dictionary<int, string>(); dicts.Add(, "Jack");
dicts.Add(, "Tom");
dicts.Add(, "Tod");
dicts.Add(, "Alics"); var dictSorted = from n in dicts
orderby n.Key descending
select n; foreach (var item in dictSorted)
{
Console.WriteLine(item.Value);
}
/*Output
* Tom
* Jack
* Tod
* Alics
*/
}
以上的示例也可以直接使用扩展方法来达到相同的效果:
static void Main(string[] args)
{
var dicts = new Dictionary<int, string>(); dicts.Add(, "Jack");
dicts.Add(, "Tom");
dicts.Add(, "Tod");
dicts.Add(, "Alics"); foreach (var item in dicts.OrderByDescending(n=>n.Value))
{
Console.WriteLine(item.Value);
}
}
输出结果跟上述示例是相同的。
LINQ的任何功能都是构建在扩展方法之上的,但有些功能拥有LINQ关键字,有些又只能通过扩展方法实现。比如Reverse扩展方法可以翻转集合中的元素,但并没有提供相应的LINQ关键字,所以只能通过扩展方法的方式调用。
关于排序的扩展方法有OrderBy、OrderByDescending、ThenBy、ThenByDescending和Reverse。很多LINQ的关键字和它们的扩展方法名对应,有些则是隐含的,比如你加上Descending的关键字,就会调用mathodnameByDescending的扩展方法。
下面的示例来说明一下次要排序。从扩展方法的角度讲就是调用ThenBy扩展方法,而对于LINQ就是一个逗号分隔的列表,在orderby子句中,第一个值后面的项都属于次要排序。
static void Main(string[] args)
{
var students = new[]{
new {name="Jane",age=,gender="famale"},
new {name="Hank",age=,gender="male"},
new {name="Niko",age=,gender="male"},
new {name="Curry",age=,gender="male"}
}; var sorted = from n in students
orderby n.age, n.gender
select n; foreach (var item in sorted)
{
Console.WriteLine(item);
} }
转自:http://www.cnblogs.com/heqichang/archive/2011/08/03/2126640.html
通过orderby关键字,LINQ可以实现升序和降序排序。LINQ还支持次要排序。的更多相关文章
- 【转】java comparator 升序、降序、倒序从源码角度理解
原文链接:https://blog.csdn.net/u013066244/article/details/78997869 环境jdk:1.7+ 前言之前我写过关于comparator的理解,但是都 ...
- list<T>升序、降序
List<test> list = new List<test> (); var result = list.OrderByDescending(p => p.we).T ...
- JDBC_10_使用Statement实现升序和降序
使用Statement数据库操作对象实现升序和降序 Statement可以使用在需要SQL语句拼接的情况下,因为在这样的情况下如果使用PreparedStatement就会给需要拼接的某个SQL关键字 ...
- python-冒泡排序,升序、降序
冒泡排序 这个算法的名字由来是因为越大的元素会经交换慢慢浮'到数列的顶端. 冒泡排序的基本思想:重复走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,直到没有再需要交换,完成排序 ...
- Java的数组和list升序,降序,逆序函数Collections.sort和Arrays.sort的使用
list升序,降序,逆序List<Integer>list =new ArrayList<Integer>();//如果list是 5 7 2 6 8 1 41.升序:Coll ...
- DataGridView使用技巧十三:点击列头实现升序和降序排序
DataGridView 列有三种排序模式.每一列的排序模式是通过该列的 SortMode 属性指定的,该属性可以设置为以下的 DataGridViewColumnSortMode 枚举值之一. Da ...
- LINQ中的OrderBy实现按照两个字段升序、降序排序操作
在公司或许有这种需求,先根据第一个某个字段按照升序排序,然后如果相同,在按照第二个某个字降序排序,我们该怎么去实现呢? 现在来教教大家分别使用Labmda和LINQ进行这种操作. 1.先按照第一个字段 ...
- AngularJS table 按照表头字段排序功能(升序和降序)
一.表格按照表头排序 <!doctype html> <html ng-app="a3_4"> <head> <title>表头排序 ...
- iOS之数组的排序(升序、降序及乱序)
#pragma mark -- 数组排序方法(升序) - (void)arraySortASC{ //数组排序 //定义一个数字数组 NSArray *array = @[@(3),@(4),@(2) ...
随机推荐
- 使用sphinx创建和查看文档
1. 安装pip $ sudo apt-get install python-pip 2. 安装全文本浏览器lynx $ sudo apt-get install lynx 3. 使用pip安装sph ...
- erlang的erl文件的编码方式
在数据源头的文件第一行加上%%coding: latin-1
- MySQL查询优化之explain详解
MySQL explain命令显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上explain就可以了: ...
- Easyradius 1.699更新,增加用户设备绑定、桥接用户管理功能
最近几天,由于IDC机房设备的问题,导致OA连接3天一天挂2次,真是把我抑闷着,最事一个烦事特别多 好不容易等了一个五一假期,也不得空,把最近一些网友反馈的OA的一些功能及BUG进行修复,主要是以下几 ...
- maven2中snapshot快照库和release发布库的应用
在之前的文章中介绍了maven2中snapshot快照库和release发布库的区别和作用,我今天这里要介绍的是如何在项目中应用snapshot和release库,应用snapshot和release ...
- linux mount 挂接新硬盘
1.先用fdisk -l查看一下,先加入的外设地址名称 2. #fdisk /dev/sdb进入fdisk模式:Command (m for help):p //查看新硬盘的分区Command ( ...
- 黏性Session和非黏性Session
黏性Session和非黏性Session黏性Session:此模式下同一会话中的请求都被派送到同一个tomcat实例上,这样我们就无须在多台服务器之间实现session共享了,这是其好处,不好的地方就 ...
- ABBYY FineReader利用模式提高OCR质量
提高OCR质量,除了可以使用ABBYY FineReader 12OCR文字识别软件解决纸质文档的复杂结构未出现在电子文档中,或者未正确检测到区域的问题(详见如何提高ABBYY FineReader ...
- mac版本cornerstone的无限期破解方法(转)
CornerStone是个人非常喜欢的mac上的一款SVN客户端工具,官方提供了14天的免费试用(trail)版本.我们可以在此基础上提供无限期试用版本. 方法一:如果你从来没有安装过这个trail版 ...
- VSCode------搭建.net core 2.0,并配置到IIS服务器
前奏 安装VSCode最新版: https://code.visualstudio.com/ 安装window server hosting,发布和部署到IIS使用: https://www.micr ...