LINQ系列:Linq to Object分区操作符
分区是指将一个单一的输入序列划分成两个或多个部分或序列,同时不会对输入元素重排序,返回一个新形成的部分。LINQ分割操作符包括Skip、SkipWhile、Take和TakeWhile。
1. Skip
Skip操作符会跳过一些元素到达序列中的一个指定的位置,将会略过特定数目的若干元素并且返回其余的元素。
1>. 原型定义
public static IEnumerable<TSource> Skip<TSource>(this IEnumerable<TSource> source, int count);
2>. 示例
int[] fibonacci = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 }; var expr = (from f in fibonacciselect f).Skip(4);
int[] fibonacci = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 }; var expr = from f in fibonacciselect f; expr.Skip(4)
var expr = context.Products.Skip(10);
2. SkipWhile
SkipWhile操作符基于特定的逻辑跳过或略过的元素,只要特定的条件为真就继续略过元素,然后返回余下的元素。
SkipWhile中的条件只对序列或集合的第一个元素开始验证判断,当序列或集合中有一个元素满足验证条件,则后续的元素则不再进行条件验证。
1>. 原型定义
public static IEnumerable<TSource> SkipWhile<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
public static IEnumerable<TSource> SkipWhile<TSource>(this IEnumerable<TSource> source, Func<TSource, int, bool> predicate);
2>. 示例
int[] fibonacci = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 }; var expr = from f in fibonacciselect f; expr.SkipWhile(item => item > 2);
var expr = context.Products.SkipWhile(p => p.UnitPrice > 10m);
int[] numbers = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 6, 3 }; var expr = numbers.SkipWhile(n => n <= 5);expr.ToList().ForEach(item => {Console.Write(item + " "); });
执行输出:
6 7 8 9 0 6 3
3. Take
Take操作符返回某个序列中连续的元素子序列,子序列开始与序列的开头,结束于指定的位置。
1>. 原型定义
public static IEnumerable<TSource> Take<TSource>(this IEnumerable<TSource> source, int count);
2>. 示例
int[] fibonacci = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 }; var expr = from f in fibonacciselect f; expr.Take(5)
var expr = context.Products.Take(5);
4. TakeWhile
TakeWhile操作符基于特定的逻辑返回元素,并且只要指定的条件为真就继续选取元素,其余元素会被跳过。
TakeWhile中的条件只对序列或集合的第一个元素开始验证判断,当序列或集合中有一个元素满足验证条件,则后续的元素则不再进行条件验证。
1>. 原型定义
public static IEnumerable<TSource> TakeWhile<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
public static IEnumerable<TSource> TakeWhile<TSource>(this IEnumerable<TSource> source, Func<TSource, int, bool> predicate);
2>. 示例
int[] fibonacci = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 }; var expr = from f in fibonacciselect f; expr.TakeWhile(item => item > 2);
var expr = context.Products.TakeWhile(p => p.UnitPrice > 10m);
int[] numbers = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 6, 3 }; var expr = numbers.TakeWhile(n => n <= 5);expr.ToList().ForEach(item => {Console.Write(item + " "); });
运行输出:
1 2 3 4 5
LINQ系列:Linq to Object分区操作符相关推荐
- Linq To Object标准操作符最强总结
Where OfType<TResult>: 说明:筛选操作符定义了返回元素的条件.Where查询操作符中,可以使用谓词.例如Lambda表达式定义的谓词,来返回布尔值.OfType< ...
- mysql linq any查询_LINQ标准查询操作符详解(转)
一. 关于LINQ LINQ 英文全称是"Language-Integrated Query",中文为"语言集成查询",它是微软首席架构师.Delphi 之父和 ...
- C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换
LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System. ...
- .NET深入实战系列—Linq to Sql进阶
.NET深入实战系列-Linq to Sql进阶 最近在写代码的过程中用到了Linq查询,在查找资料的过程中发现网上的资料千奇百怪,于是自己整理了一些关于Linq中容易让人困惑的地方. 本文全部代码基 ...
- 【LINQ】LINQ 简介
LINQ基本概念 LINQ(语言集成查询) 是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性.已经成为了编程语言的组成部分,在编程时可以进行语法检查, ...
- Linq技术四:动态Linq技术 -- Linq.Expressions
前面介绍了Linq的三个方面应用:Linq to SQL, Linq to XML和Linq to Object,这篇介绍一下动态Linq的实现方式及应用场景. 命名空间: System.Linq; ...
- python将object转换为float_将pandas系列类型从object转换为float64
我有一个来自数据帧(energy["Energy Supply"])的列(类型为Series),如下所示:Country China 127191 United States 90 ...
- 联想y系列 win8 在GPT分区下安装win7
联想y系列win8 在GPT分区下安装win7(即可保留原win8系统和一键还原) 说明:此贴只是为了想保留win8系统和一键还原,但是又想使用win7系统的同学准备,安装过程请不要破坏隐藏分区,也不 ...
- LINQ系列:Linq to Object排序操作符
LINQ排序操作符包括:OrderBy.OrderByDescending.ThenBy.ThenByDescending及Reverse. 1. OrderBy 1>. 原型定义 public ...
最新文章
- linux虚拟机下安装Tomcat
- Domino R8.5相关链接
- 程序与生活:程序员要保持好奇心
- java获取json中的某个值_接口测试之json中的key获取
- Vulnhub靶机渗透之 AI: Web: 1
- 如何高效学Python?好用的爬虫工具又有哪些?
- 一段让人瑟瑟发抖的ABAP代码
- 我的AI之路 —— 从裸机搭建GPU版本的深度学习环境
- jsDelivr 缓存刷新小工具
- PHP获取当前脚本内存占用情况
- 银行卡号自动识别,包括银行名称、英文缩写代号、LOGO
- 计算机系统基础第二版_2020年注册环保工程师公共基础考试题库
- 服务器cpu天梯图_笔记本CPU排行天梯图2020
- VBA:单元格的引用
- java黑洞数字_Java中实现数字黑洞的示例
- C语言中变长数组的陷阱
- 抖音中用小程序自动制作人物关系图
- 京东与淘宝孰优孰劣?
- 如何在支付宝开直播,这篇入驻教程不要错过,看完你就会了
- CSS中左上朝向三角形(Top-Left Triangle)的几种制作方式