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