分区是指将一个单一的输入序列划分成两个或多个部分或序列,同时不会对输入元素重排序,返回一个新形成的部分。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分区操作符相关推荐

  1. Linq To Object标准操作符最强总结

    Where OfType<TResult>: 说明:筛选操作符定义了返回元素的条件.Where查询操作符中,可以使用谓词.例如Lambda表达式定义的谓词,来返回布尔值.OfType< ...

  2. mysql linq any查询_LINQ标准查询操作符详解(转)

    一. 关于LINQ LINQ 英文全称是"Language-Integrated Query",中文为"语言集成查询",它是微软首席架构师.Delphi 之父和 ...

  3. C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换

    LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System. ...

  4. .NET深入实战系列—Linq to Sql进阶

    .NET深入实战系列-Linq to Sql进阶 最近在写代码的过程中用到了Linq查询,在查找资料的过程中发现网上的资料千奇百怪,于是自己整理了一些关于Linq中容易让人困惑的地方. 本文全部代码基 ...

  5. 【LINQ】LINQ 简介

    LINQ基本概念 LINQ(语言集成查询) 是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性.已经成为了编程语言的组成部分,在编程时可以进行语法检查, ...

  6. Linq技术四:动态Linq技术 -- Linq.Expressions

    前面介绍了Linq的三个方面应用:Linq to SQL, Linq to XML和Linq to Object,这篇介绍一下动态Linq的实现方式及应用场景. 命名空间: System.Linq; ...

  7. python将object转换为float_将pandas系列类型从object转换为float64

    我有一个来自数据帧(energy["Energy Supply"])的列(类型为Series),如下所示:Country China 127191 United States 90 ...

  8. 联想y系列 win8 在GPT分区下安装win7

    联想y系列win8 在GPT分区下安装win7(即可保留原win8系统和一键还原) 说明:此贴只是为了想保留win8系统和一键还原,但是又想使用win7系统的同学准备,安装过程请不要破坏隐藏分区,也不 ...

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

    LINQ排序操作符包括:OrderBy.OrderByDescending.ThenBy.ThenByDescending及Reverse. 1. OrderBy 1>. 原型定义 public ...

最新文章

  1. linux虚拟机下安装Tomcat
  2. Domino R8.5相关链接
  3. 程序与生活:程序员要保持好奇心
  4. java获取json中的某个值_接口测试之json中的key获取
  5. Vulnhub靶机渗透之 AI: Web: 1
  6. 如何高效学Python?好用的爬虫工具又有哪些?
  7. 一段让人瑟瑟发抖的ABAP代码
  8. 我的AI之路 —— 从裸机搭建GPU版本的深度学习环境
  9. jsDelivr 缓存刷新小工具
  10. PHP获取当前脚本内存占用情况
  11. 银行卡号自动识别,包括银行名称、英文缩写代号、LOGO
  12. 计算机系统基础第二版_2020年注册环保工程师公共基础考试题库
  13. 服务器cpu天梯图_笔记本CPU排行天梯图2020
  14. VBA:单元格的引用
  15. java黑洞数字_Java中实现数字黑洞的示例
  16. C语言中变长数组的陷阱
  17. 抖音中用小程序自动制作人物关系图
  18. 京东与淘宝孰优孰劣?
  19. 如何在支付宝开直播,这篇入驻教程不要错过,看完你就会了
  20. CSS中左上朝向三角形(Top-Left Triangle)的几种制作方式

热门文章

  1. element引入的组件大小高度不对_试水 elementplus ui 组件库
  2. matlab-绘图-直角坐标系
  3. 【SRIO】4、Xilinx RapidIO核详解
  4. Windows下在后台运行jar包
  5. 2018-03-02 Linux
  6. WPF如何获得变量异步回调函数时产生的异步回调
  7. [Android]使用Kotlin开发Android(二)
  8. MySQL密码设置和重置,以及远程登入数据库
  9. 图像处理之基础---高斯低通滤波在指定区域画放大圆形图
  10. 目前比较流行的Python科学计算发行版