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[] { , , , , , , , };
var expr = (from f in fibonacci
select f).Skip();
int[] fibonacci = new int[] { , , , , , , , };
var expr = from f in fibonacci
select f;
expr.Skip()
var expr = context.Products
.Skip();
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[] { , , , , , , , };
var expr = from f in fibonacci
select f;
expr.SkipWhile(item => item > );
var expr = context.Products
.SkipWhile(p => p.UnitPrice > 10m);
int[] numbers = new int[] { , , , , , , , , , , , };
var expr = numbers.SkipWhile(n => n <= ); expr.ToList().ForEach(item =>
{
Console.Write(item + " ");
});
执行输出:
3. Take
Take操作符返回某个序列中连续的元素子序列,子序列开始与序列的开头,结束于指定的位置。
1>. 原型定义
public static IEnumerable<TSource> Take<TSource>(this IEnumerable<TSource> source, int count);
2>. 示例
int[] fibonacci = new int[] { , , , , , , , };
var expr = from f in fibonacci
select f;
expr.Take()
var expr = context.Products
.Take();
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[] { , , , , , , , };
var expr = from f in fibonacci
select f;
expr.TakeWhile(item => item > );
var expr = context.Products
.TakeWhile(p => p.UnitPrice > 10m);
int[] numbers = new int[] { , , , , , , , , , , , };
var expr = numbers.TakeWhile(n => n <= ); expr.ToList().ForEach(item =>
{
Console.Write(item + " ");
});
运行输出:
LINQ系列:Linq to Object分区操作符的更多相关文章
- LINQ系列目录
1. LINQ准备 1.1 C#中与LINQ相关特性 2. LINQ to Object 2.1 LINQ to Object投影操作符(Select/SelectMany/Let) 2.2 LINQ ...
- C# ~ 从 XML 到 Linq 到 Linq to XML
.XML 可扩展标记语言 (Extensible Markup Language), 标记 (markup) 是关键部分,是标准通用标记语言 (Standard Generalized Markup ...
- LINQ系列:Linq to Object集合操作符
集合操作符对元素的集合或序列集合进行操作,并返回一个集合.LINQ共有4种集合查询操作符:Distinct.Union.Intersect和Except. 1. Distinct Distinct操作 ...
- LinQ系列文章
温故而知新,想着系统再学习一次LinQ知识点,发现园子里有个非常棒的系列文章,所以Mark下来,方便以后查阅! 系列博客导航: LINQ之路系列博客导航 LINQ之路 1:LINQ介绍 LINQ之路 ...
- C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换
LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System. ...
- LINQ 系列
C#图解教程 第十九章 LINQ LINQ 什么是LINQLINQ提供程序 匿名类型 方法语法和查询语法查询变量查询表达式的结构 from子句join子句什么是联结查询主体中的from…let…w ...
- Linq系列
LINQ 图解 Linq中的Select——投影 Linq学习资源 Expert C# 5.0中的Linq部分
- LINQ之LINQ to Objects(上)
LINQ概述 LINQ,语言集成查询(Language Integrated Query),它允许使用C#或VB代码以查询数据库相同的方式来操作不同的数据源. 1.LINQ体系结构 从上图可以看出,L ...
- Linq之Linq to Sql
目录 写在前面 系列文章 Linq to sql 总结 写在前面 上篇文章介绍了linq to xml的相关内容,linq to xml提供一种更便捷的创建xml树,及查询的途径.这篇文章将继续介绍l ...
随机推荐
- CentOS 7.x设置自定义开机启动,添加自定义系统服务
Centos 系统服务脚本目录: /usr/lib/systemd/ 有系统(system)和用户(user)之分, 如需要开机没有登陆情况下就能运行的程序,存在系统服务(system)里,即: /l ...
- Leetcode Kth Smallest Element in a BST
Given a binary search tree, write a function kthSmallest to find the kth smallest element in it. Not ...
- select2插件不兼容ie7,ie7下样子显示错位问题
1.源文件(未修改) select2.min.css.select2.min.js 2.ie7下显示样式: 3.ie8下显示样式: 4.经查看发现ie7下对一些属性的解析和ie8不同,需对ie7另作h ...
- Java throws Exception、try、catch
throws Exception是方法后面接的 意思是向上级抛出异常 try{}里面的异常会被外面的catch捕捉到 抛出异常是throw new Exception("异常"); ...
- [翻译svg教程]svg 中的g元素
svg 中的<g>元素用来组织svg元素.如果一组svg元素被g元素包裹了,你可以通过对g元素进行变换(transform),被g元素包裹的元素也将被变换,就好这些被svg包裹的元素是一个 ...
- Ubuntu14.10搭建C++开发环境
方法一:1、安装Eclipsesudo apt-get install eclipse2、安装Eclipse CDTsudo apt-get install eclipse-cdt3、安装Autoto ...
- Python之路【第四篇】python基础 之基本数据类型之集合
基本数据类型之集合 set set集合,是一个无序且不重复的元素集合 # set 不允许重复的集合 set允许重复的列表但是集合是无序的 #例如 # s = {1,23,23,4,55,55} # p ...
- #iOS问题记录# 关于UITableViewcel的分割线去掉问题
十分清楚的记得以前在使用的时候,通过[_mTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];这一句话来达到效果的. 这次怎么 ...
- html5 炫酷的字幕雨
<!DOCTYPE html> <html> <head> <script src="http://tj.gamee456.com/jquery.1 ...
- asp.net[web.config] httphandlers 与实现自由定义访问地址
今天一起来看一个简单的例子,主要是用来实现一个映射功能,我们一般访问一个网址的时候比如是这样的http://localhost:6166/WebSite1/api/request.aspx?strte ...