分区是指将一个单一的输入序列划分成两个或多个部分或序列,同时不会对输入元素重排序,返回一个新形成的部分。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进程间通信:system V 共享内存
  2. HOG特征过程解释(转)
  3. 直接用img 的src属性显示base64转码后的字符串成图片【原】
  4. 变量的引用-函数返回值传递引用
  5. 用最简单话概括SSH三框架
  6. 关于本人在多个技术平台发布文章的声明
  7. C语言中字符串如何转换为二进制、八进制、十进制、十六进制
  8. 流量超过谷歌的Tiktok,在扩张过程中被质疑“偷窃”OBS代码
  9. 将提取出的yuv三个分量序列合并成一个完整的彩色yuv序列(matlab实现)
  10. FtpWebRequest(转)---关于C/S中文件的上传,下载,获得文件列表
  11. solidity import @是什么意思
  12. 区块链 不可能三角是什么
  13. 五子棋(机器人随机下棋简单版本)
  14. 【历史上的今天】6 月 25 日:笔记本之父诞生;Windows 98 发布;通用产品代码首次商用
  15. 人脸识别活体检测测试案例
  16. Spring Cloud Netflix之Euraka Server注册中心
  17. Mac securecrt 破解版安装
  18. 计算几何 - 你绝对找不到比这更好的计算几何
  19. html加载三维地图,Cesium加载三维地形及WMS地图,并实现动态控制显示
  20. 五款堪称神奇的手机APP 一定不要错过了

热门文章

  1. 小学六年级能用计算机器,小学六年级信息技术测试题
  2. 遇见BUG(2)去掉你的增量编译使能!
  3. 【 FPGA 】FIR滤波器之 多个系数集问题以及 使用非整数实数的系数规范问题
  4. CSS中的趣事之float浮动
  5. WordPress插件开发: 文章同步到OSC博客插件(OscPress) (四)
  6. 安装discuz遇到的坑
  7. android——ImageLoader添加缓存
  8. UI之UI View--属性及用法
  9. Spring的生命周期
  10. Mac虚拟机安装windows教程--Parallels 5