LINQ 按多个字段排序(orderby、thenby、Take)
LINQ 按多个字段排序(orderby、thenby、Take)
orderby 子句解析为 OrderBy()方法,orderby descending 子句解析为OrderBy Descending()方法:
var racers = Formula1.GetChampions(). Where(r = > r.Country == "Brazil"). OrderByDescending(r = > r.Wins). Select(r = > r);
OrderBy()升序 和 OrderByDescending() 降序 方法返回 IOrderEnumerable。这个接口派生于接口
IEnumerable,但包含一个额外的方法CreateOrderedEnumerable- ()。
这个方法用于进一步给序列排序。
如果根据关键字选择器来排序,两项的顺序相同,就可以使用 ThenBy()和 ThenByDescending ()方法继续排序。
这两个方法需要 IOrderEnumerable才能工作,但也返回这个接口。
所以,可以添加任意多个 ThenBy()和 ThenByDescending ()方法,对集合排序。
使用 LINQ 查询时,只需把所有用于排序的不同关键字(用逗号分隔开)添加到orderby 子句中。
这里,所有的赛手先按照国家排序,再按照姓氏排序,最后按照名字排序。
添加到 LINQ 查询结果中的Take()扩展方法用于提取前 10 个结果:
private static void Ordering() {
var racers = (from r in Formula1.GetChampions()orderby r.Country, r.LastName, r.FirstName select r).Take(10);
foreach (var racer inracers)
{ Console.WriteLine("{0:C}: {0:L}, {0:F}", racer); //属性名的第一个字母
}
}
Lambda表达式 使用OrderBy()和 ThenBy()方法可以执行相同的操作:
private static void Ordering()
{
var racers = Formula1.GetChampions(). OrderBy(r => r.Country). ThenBy(r => r.LastName). ThenBy(r => r.FirstName). Take(10);
foreach (var racer in racers)
{
Console.WriteLine("{0:C}: {0:L}, {0:F}", racer); //属性名的第一个字母 }
}
//ThenBy() 降序 ThenByDescending升序
var list = _MdDatacubeofjobinfotaskBL.GetListByPage(condition, Pager1.PageSize, Pager1.CurrentPageIndex, beginDate1, endDate1).OrderByDescending(k =>
k.DataChange_CreateTime).ThenBy(k => k.JobinfotaskId);
LINQ 按多个字段排序(orderby、thenby、Take)的更多相关文章
- 转linq中的Single()、First()、Take(1) LINQ 标准的查询操作符 排序 orderby、thenby、Take
Single():操作一个集合,同时强要求只有一个对象匹配,并返回这一个. First():操作一个集合,可以有多个对象匹配,但是只返回第一个. Take(1):操作一个集合,可以有对个对象匹配,单只 ...
- Linq基础操作之Select,Where,OrderBy,ThenBy源码分析
Linq基础操作之Select,Where,OrderBy,ThenBy源码分析 二:Select 它是延迟执行.yield有得一拼,因为他们都是生成了一个枚举类. if (source is TSo ...
- LINQ 按多个字段排序
多字段排序 添加到 LINQ 查询结果中的Take()扩展方法用于提取前 个结果: private static void Ordering() { var racers = (from r in F ...
- List多字段排序,orderBy,ThenBy
List排序问题,orderBy,ThenBy 1.List中一个字段排序 前几天做的项目中,获取的List<T>需要用某个字段来进行排序,困扰了很久.用OrderBy解决了.具体是这样的 ...
- List使用linq的OrderBy方法排序,并按照两个字段排序的写法
SfaMember.GetList(searchInfo, 0, 1000, out Allcount).Where(item => item.bOpen == true).OrderBy(it ...
- 转载LINQ系列OrderBy(), ThenBy()简介
前言 前面两篇分别介绍了 Where() 与 Select() ,这篇则是要介绍 OrderBy() 与 ThenBy() ,这几个东西看起来最像 SQL 上会用到的语法,但切记一点,这边介绍的是 L ...
- Linq to entity 执行多个字段排序的方法
可以连续使用:OrderBy,ThenBy 或者 OrderByDescending,ThenByDescending var data = db.User .Where(u => u.User ...
- EFCore+Mysql仓储层建设(分页、多字段排序、部分字段更新)
前沿 园子里已有挺多博文介绍了EFCore+Mysql/MSSql如何进行使用,但实际开发不会把EF层放在Web层混合起来,需要多个项目配合结构清晰的进行分层工作,本文根据个人实践经验总结将各个项目进 ...
- Entity Framework 4、5 多字段排序
public interface IOrderByExpression<TEntity> where TEntity : class { IOrderedQueryable<TEnt ...
随机推荐
- 缓存之ehcache
1.EhCache缓存框架简介 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. 我们使用EhCache缓存框架主要是为 ...
- BZOJ 2286: [Sdoi2011消耗战 [DP 虚树]
传送门 题意: 删除价值和最小的边使得$1$号点与$k$个关键点不连通 一个树形DP...但是询问多次,保证总的关键点数为$O(n)$ 先说一下这个$DP$ $f[i]$表示子树$i$中的关键点与$1 ...
- LeetCode - 627. Swap Salary
Given a table salary, such as the one below, that has m=male and f=female values. Swap all f and m v ...
- ubuntu16.04安装ftp服务器
参考文章: http://www.linuxidc.com/Linux/2017-01/139233.htm 1.检查是否安装vsftpd,如果安装了跳过第二步 vsftpd -v 2.安装vsftp ...
- iOS开发中UIPopoverController的使用详解
这篇文章主要介绍了iOS开发中UIPopoverController的使用,代码基于传统的Objective-C,需要的朋友可以参考下 一.简单介绍 1.什么是UIPopoverController ...
- HP中spl_autoload_register函数的用法
spl_autoload_register(PHP 5 >= 5.1.2) spl_autoload_register - 注册__autoload()函数 说明bool spl_autoloa ...
- Python网络编程(1)-socket
我会在近期尽快更新好之前写的博客,会添加新的知识点和注意问题,排版和内容都会较之前有很大的改观,感谢大家一直的支持! 1. 客户端/服务器架构 客户端/服务器架构也称主从式架构,简称C/S架构,它是一 ...
- Linux下ACL权限控制以及用sudo设置用户对命令的执行权限
ACL权限分配 1.setfacl命令设置文件权限 setfacl -m u:user1:rw root.txt setfacl -m u:user2:rwx root.txt 2.getfacl命令 ...
- PendingIntent
PendingIntent表示一种即将发生的意图,和Intent的区别在于:PendingIntent是在将来的某个不确定的时刻发生,而Intent是立刻发生 典型使用场景是给RemoteViews添 ...
- hihoCoder 树结构判定(并查集)
思路:树满足两个条件: 1.顶点数等于边数加一 2.所有的顶点在一个联通块 那么直接dfs或者并查集就可以了. AC代码 #include <stdio.h> #include<st ...