通过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) ...
随机推荐
- LeetCode224——Basic Calculator
Implement a basic calculator to evaluate a simple expression string. The expression string may conta ...
- CentOS下 RabbitMQ单机安装配置
CentOS RabbitMQ rpm 安装方法: 系统环境:CentOS6IP地址:10.100.62.41 1.erlang安装: erlang下载地址: http://www.rabbitmq. ...
- CentOS系统基础优化16条知识汇总
1.不用root管理,以普通用户的名义通过sudo授权管理: 2.更改默认的远程连接服务端,禁止root用户远程连接,甚至要更改只监听内网ip: 3.定时自动更新服务器时间,使其和互联网时间同步: 4 ...
- linux中find命令
1.使用name选项: 文件名选项是find命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用. 可以使用某种文件名模式来匹配文件,记住要用引号将文件名模式引起来. 不管当前路径是什么,如果 ...
- mongo数据库命令简单学习
db.getCollection('product').update({status:"offline"},{$set:{status:"online"}},f ...
- 表达式树(Expression Tree)
你每创建一个表示表达式的实例时,都可以将该类型实例看成是一棵表达式树.每种表示表达式的类型都有一个具体的类型,如Expression的Variable()方法创建的是ParameterExpressi ...
- HTTP 请求未经客户端身份验证方案“Anonymous”授权。
今天调取WebService的时候报: HTTP 请求未经客户端身份验证方案“Anonymous”授权. 解决办法: 配置文件里改: <basicHttpBinding> <bind ...
- python中如何将字符串连接在一起,多倍的字符串如何输出
说明: 在python中,如果有多个字符串,想要连接在一起,或者说想要拼接在一起该如何操作,在此记录下. 操作过程: 1.通过 + 这个加号操作符,将字符串拼接在一起 >>> &qu ...
- Ubuntu14.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐)
不多说,直接上干货! 说在前面的话 首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...
- Java实现经理与员工的差异
对于在同一家公司工作的经历和员工而言,两者是有很多共同点的.例如,每个月都要发工资,但是经理在完成目标任务后,还会获得奖金.此时,利用员工类来编写经理类就会少写很多代码,利用继承技术可以让经理类使用员 ...