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);
时间: 2024-10-22 13:40:17

LINQ 按多个字段排序(orderby、thenby、Take)的相关文章

asp.net中使用 Repeater控件拖拽实现排序并同步数据库字段排序_实用技巧

数据库表中有一个单位表,里面包括ID.Name.Order等字段,现在有个后台管理功能,可以设置这些单位在某些统计表格中的先后显示顺序,于是想到用拖拽方式实现,这样操作起来更简便. 使用了GifCam软件做了一个示例动画,效果如下图所示: 于是就动手起来,发现jquery.ui中提供sortable函数,可用于排序,界面中从数据库绑定的单位使用Repeater控件,下面简单介绍下主要步骤: 1.项目中使用到的jquery-1.7.2.min.js和jquery-ui.min.js请点击进行下载,

WordPress实现文章按照自定义字段排序

用Meta Query可以实现WordPress文章按照自定义排序,假设安装了WP-PostRatings给文章打分,该插件会把文章平均分存成名叫ratings_average的自定义字段,现在就来按照这个字段排序. 简洁优雅的方法 就是Meta Query,代码放在主题的functions.php里.  代码如下 复制代码 function sort_by_ratings( $query ){     if ( ( $query->is_home() || $query->is_archiv

PHP 二维关联数组根据其中一个字段排序(推荐)

PHP 中二维关联数组如何根据其中一个字段进行排序,下面的代码将二维关联数组 $array 根据 $orderby 字段进行排序: function wpjam_array_multisort($array, $orderby, $order = SORT_ASC, $sort_flags = SORT_NUMERIC){ $refer = array(); foreach ($array as $key => $value) { $refer[$key] = $value[$orderby];

mongotemplate-mongoTemplate 查询结果,按子文档中的一个字段排序,要怎么实现?

问题描述 mongoTemplate 查询结果,按子文档中的一个字段排序,要怎么实现? 要查询的mongo数据: {_id"" : ***_class"" : ""***""downloadCount"" : {china"" : 20google"" : 10 }}{_id"" : ***_class"" : "&q

java中List按照指定字段排序工具类

文章标题:java中List按照指定字段排序工具类. 文章地址: http://blog.csdn.net/5iasp/article/details/17717179   包括如下几个类   1. 实体类   package com.newyear.wish; /** * 实体类 * */ public class Video { public Video(int id, String title, int hits) { super(); this.id = id; this.title =

PHP二维数组怎么按某个字段排序?

  先不说别的我们直接看二维数组按某个字段排序实例  代码如下   <?php         /**        * @author yebihai http://www.45it.com      * @desc 按二维数组的某一个字段进行升降排序        * @data        *      $testData = array(                   array('price'=>19),                   array('price'=>

PHP 二维数组根据某个字段排序的具体实现

 本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求.  要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条.  遇到这个要求的时候就不是 ORDER BY 能解决的问题了.因此翻看 PHP 手册查找到了如下方法,做此笔记. 废话少说,奉上代码,清单如下:  .代码如下: <?php  /**  * 二维数组根据某个字段排序  * 功能:按照用户的年龄倒序排序  * @auth

js表格字段排序的实例代码介绍

 本篇文章只要是对js表格字段排序的实例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 1.比较函数生成器:    代码如下: /**  * 比较函数生成器  *   * @param iCol  *            数据行数  * @param sDataType  *            该行的数据类型  * @return  */ function  generateCompareTRs(iCol, sDataType) {      return   functio

linq-asp.net中如何通过LINQ访问数据库某字段相应元组的的另一个字段

问题描述 asp.net中如何通过LINQ访问数据库某字段相应元组的的另一个字段 asp.net中如何通过LINQ访问数据库某字段相应元组的的另一个字段,比如有一个数据库,里面有学号,姓名,还有密码. 如果我知道一个学号,但是我想知道这个学号对应的姓名时,我应该怎么做?还有如何把这个匹配的姓名赋值到一个Lable上.求大神指点.做作业用的 解决方案 (1) var query = db.table.First(x => x.学号 == 1).姓名; (2) label1.Text = query