LINQ系列:Linq to Object排序操作符

  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.Productsorderby p.ProductIDselect 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.Productsorderby p.ProductID descendingselect 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.Productsorderby p.ProductID, p.ProductNameselect 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.Productsorderby p.ProductID, p.ProductName descendingselect 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 weekdaysselect weekday;foreach (var item in expr.Reverse())
{Console.WriteLine(item);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/401347.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第5章 为手机而设计

5&#xff0e;为手机而设计 至此,你已经了解了手机&#xff0c;通过一个简单的应用程序的演练了工作方式并且学习XAML的基础知识。现在你应该开始考虑你要编写的应用程序的性质。虽然很容易想到的是手机只是Silverlight存在于另一个屏幕上而已&#xff0c;但是事实没有这么简单…

vue3.x全局toast、message、loading组件

vue3.x全局toast、message、loading组件Toast组件loadingToast组件 在 src/components下创建toast文件夹&#xff0c;并依此创建index.vue和index.js 1、index.vue 一般toast会有如下功能&#xff1a;背景色、字体颜色、文本、停留时间 <template> <div class"…

知天命

吾乃浑浑噩噩、后知后觉之人。 今欲窥天命之道。天命&#xff0c;何也&#xff1f; 天之命乎&#xff0c;或人之道乎&#xff1f; 人生于此世。 盲从于世上&#xff0c;依其欲而行&#xff0c;乃天之命也。 人可存之世上仅百载&#xff0c;终白土亦。 随意欲而为&#xff0c;应…

教程:在 VM Depot 中查找 Azure 可用的虚拟机镜像

&#xfeff;&#xfeff;发布于 2014-07-08 作者 陈 忠岳 对于 Azure 的社区管理虚拟机资源库——VM Depot——的用户来说&#xff0c;网站的搜索功能已得到极大的改善。这一搜索能力的增强&#xff0c;可以帮助用户更容易地找到 Azure 可用的开源 Linux 虚拟机。 搜索发现 …

HDU 1203 I NEED A OFFER!(01背包)

I NEED A OFFER! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 9932 Accepted Submission(s): 3687 Problem DescriptionSpeakless很早就想出国&#xff0c;现在他已经考完了所有需要的考试&#xff0c;准备了…

H5实现微信摇一摇功能

//摇一摇<script type"text/javascript"> var num 1; var SHAKE_THRESHOLD 2000; var last_update 0; var x y z last_x last_y last_z 0; function init() { if (window.DeviceMotionEvent) { window.addEventListener(devicemotion, deviceMotionHan…

PHP起点 - 运算符

一.算术运算符 名称    操作符    举例 加法          $a $b 减法     -      $a - $b 乘法     *     $a * $b 除法运算   /      $a / $b 取余运算   %     $a % $b 递增运算        $a, $a 递减运算  …

Java I/O流

字符流&#xff1a; Reader&#xff1a;用于读取字符流的抽象类。子类必须实现的方法只有 read(char[], int, int) 和 close()。 |---BufferedReader&#xff1a;从字符输入流中读取文本&#xff0c;缓冲各个字符&#xff0c;从而实现字符、数组和行的高效读取。 可以指定缓冲区…

java中跨时区的日期格式转换

2019独角兽企业重金招聘Python工程师标准>>> 先上一段代码 public class DataTransfer {public static void main(String[] args) {String dateStr "Sep 30, 2014 12:00:00 AM";SimpleDateFormat sdf new SimpleDateFormat();sdf.applyPattern("MM…

Asp.net WebForm中应用Jquery EasyUI Layout

Asp.net WebForm中应用Jquery EasyUI Layout 按照EasyUI文档中的示例&#xff0c;编写layout代码&#xff1a; <body class”easyui-layout”> <div region"north" border"false" style"height:60px;background:#B3DFDA;">north reg…

C语言读取写入CSV文件 [二]进阶篇——写入CSV文件

Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 本系列文章目录 [一] 基础篇 [二] 进阶篇——写入CSV [三] 进阶篇——读取CSV 什么是 包裹&#xff08;使用双引号&…

ABAP 数值四舍五入函数

DATA : dat TYPE p DECIMALS 9 VALUE 12.5445 ,dat1 TYPE p DECIMALS 9 .DATA dat2 TYPE p DECIMALS 9 VALUE 12.540.* 方法一 CALL FUNCTION HR_NZ_ROUNDING_DECIMALSEXPORTINGvalue_in datconv_dec 2 " 设置保留几位小数IMPO…

K8S中部署apisix(非ingress)

Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 不使用pvc的方式在K8S中部署apisix-gateway 简介 因为公司项目准备重构&#xff0c;现在做技术储备&#xff0c;之前公司项…

MVC3 URL 数据绑定

从数据库中取出的Int类型的ID&#xff0c;在Razor视图中显示的链接地址格式为:http://localhost:1846/news/Detail/1 Router格式&#xff1a;{controller/action/id} 数据库中对应的字段为ID,对应的Action中的参数名也必须为ID 否则 编译器会报参数值为Null的错误。 当数据库中…

机器学习理论知识部分--偏差方差平衡(bias-variance tradeoff)

摘要&#xff1a; 1.常见问题 1.1 什么是偏差与方差&#xff1f; 1.2 为什么会产生过拟合&#xff0c;有哪些方法可以预防或克服过拟合&#xff1f; 2.模型选择例子 3.特征选择例子 4.特征工程与数据预处理例子 内容&#xff1a; 1.常见问题 1.1 什么是偏差与方差&#xff1f; …

MVC中获取模型属性的Range和StringLength验证特性设置

MVC中的客户端及服务端模型验证信息都以ModelMetadata类型作为承载&#xff0c;在获得属性的ModelMetadata之后&#xff08;还不知道怎么获取ModelMetadata的童鞋请自行恶补&#xff09;&#xff0c;我们可以轻松得到一些我们在模型中定义的特性&#xff0c;比如显示名称、是否…

有手就行3——持续集成环境—maven、tomcat、安装和配置

Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 有手就行3——持续集成环境—maven、tomcat、安装 持续集成环境**(5)-Maven****安装和配置** 持续集成环境(6)-Tomcat安装…

隐藏Content-Location标头带的内部IP地址的执行语句以及其可能会带来的问题

用IIS发布的系统&#xff0c;利用各种检测工具&#xff0c;可以获取到页面的请求头的信息&#xff0c;里面会带有服务器IP等保密信息。 为了避免服务器IP地址等这种信息别的工具检测到&#xff0c;导致安全隐患。可以在CMD中执行以下语句&#xff1a; cscript c:\\inetpub\admi…

unity获取ugui上鼠标位置

public class GetMousePos : MonoBehaviour {public Canvas canvas;//画布private RectTransform rectTransform;//坐标void Start(){canvas GameObject.Find("Canvas").GetComponent<Canvas>();rectTransform canvas.transform as RectTransform; //也可以写…

netty框架

Netty 提供异步的、事件驱动的网络应用程序框架和工具&#xff0c;用以快速开发高性能、高可靠性的网络服务器和客户端程序。Netty是一个NIO客户端 服务端框架。允许快速简单的开发网络应用程序。例如&#xff1a;服务端和客户端之间的协议。它最棒的地方在于简化了网络编程规范…