Linq中Take、TakeWhile、Skip、SkipWhile的比较(转)
参考文章:http://blog.csdn.net/lxfzgg/article/details/20534281
int[] numbers = { , , , , , , , , , };
var first3Numbers = numbers.Take(); //从第一个元素开始,获取三个 return的是前面的数 Console.WriteLine("First 3 numbers:"); foreach (var n in first3Numbers)
{
Console.WriteLine(n);//结果 5 4 1
}
int[] numbers = { , , , , , , , , , }; //在这里需要注意.使用TakeWhile获取小于6的元素,是从第一个元素开始,
//一直到不满足其小于6这个条件为止.也就是执行到和9这个元素比较后,就结束比较了
//可以想象一下执行过程.
//5<6=true;4<6=true;1<6=true;3<6=true
//9<6=false; 这里就停止继续比较了
var firstNumbersLessThan6 = numbers.TakeWhile(n => n < ); Console.WriteLine("First numbers less than 6:"); foreach (var n in firstNumbersLessThan6)
{
Console.WriteLine(n);//结果为 5 4 1 3
}
int[] numbers = { , , , , , , , , , };
var allButFirst4Numbers = numbers.Skip(); //跳过前四个元素,获取后面所有的元素 Console.WriteLine("All but first 4 numbers:"); foreach (var n in allButFirst4Numbers)
{
Console.WriteLine(n);//结果9 8 6 7 2 0
}
int[] numbers = { , , , , , , , , , }; //跳过不能被3整除的所有元素
//这里和TakeWhiel又有些不一样。
//TakeWhile遇到条件不满足的时候,就会return,
//但是SkipWhile如果执行到能被三整除的数,那么其后面的元素就不会继续比较了
//同样,想象一下执行过程
//5%3!=0==true; 4%3!=0==true; 1%3!=0==true;
//3%3!=0==false; 运行到这里的时候,后面的就不再比较.
//所以输出结果中会有8、7、2、0这几个不满足条件的元素
var allButFirst3Numbers = numbers.SkipWhile(n => n % != );
foreach (var n in allButFirst3Numbers)
{
Console.WriteLine(n);//结果3 9 8 6 7 2 0
}
Linq中Take、TakeWhile、Skip、SkipWhile的比较(转)的更多相关文章
- Linq 中的TakeWhile 和 SkipWhile
这两个概念容易搞混 理解了一番后 在这里写下便于记忆 SkipWhile 可以理解为如果条件满足 就一直跳过 知道不满足后 就取剩下的所有元素(后面的不会再判断) TakeWhile 可以理解为 ...
- LINQ 中常用函数使用: Take TakeWhile Skip SkipWhile Reverse Distinct
1,Take 方法 Take方法用于从一个序列的开头返回指定数量的元素. string[] names = { "郭靖", "李莫愁", "欧阳晓晓& ...
- Linq分区操作之Skip,SkipWhile,Take,TakeWhile源码分析
Linq分区操作之Skip,SkipWhile,Take,TakeWhile源码分析 二:linq的分区操作 常用的分区操作:Take,TakeWhile,Skip,SkipWhile 三:Take ...
- LINQ中的陷阱--TakeWhile&SkipWhile
在用TakeWhile,SkipWhile设置陷阱之前,我们先来看一看他们的兄弟Take和Skip: public static IEnumerable<T> Take<T>( ...
- Linq中关键字的作用及用法
Linq中关键字的作用及用法 1.All:确定序列中的所有元素是否都满足条件.如果源序列中的每个元素都通过指定谓词中的测试,或者序列为空,则为 true:否则为 false. Demo: 此示例使用 ...
- 关于Linq中的Lambda表达式中OrderBy的深入理解
起因:就是一段Linq语句,OrderBy里面的i是什么? IQueryable<Student> slist = (from s in EFDB.Student select s). O ...
- linq中AsEnumerable和AsQueryable的区别
本文导读:用Linq来操作集合的时候会用到AsQueryable()和AsEnumerable(),何时该用AsQueryable()和何时该用AsEnumerable(),或许存在些疑惑.AsQue ...
- Sliverlight linq中的数组筛选数据库中的数据
首先 什么是linq呢 ? LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特 ...
- Linq中join & group join & left join 的用法
Linq中join & group join & left join 的用法 2013-01-30 11:12 12154人阅读 评论(0) 收藏 举报 分类: C#(14) 文章 ...
- Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法
Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法:在写LINQ语句的时候,往往会看到AsEnumerable() ,AsQueryable() 和T ...
随机推荐
- js中使用prototype扩展对象方法
//---------------------对象 //1. var HomeContrl = function(){ this.foo = 'bar'; //对象方法 this.intro = fu ...
- Python学习笔记——面向对象基础
1.类和实例 1.1类的定义 类的定义使用class关键字,其后紧跟类名(通常大写开头),紧接着是(object),object是该类继承的类名,没有就继承object类. 实例化时就是类名+(),有 ...
- 使用South时候由于两个相同id的文件引起的问题
由于之前版本控制的一个小失误, 在主分子上面调用python manage.py makemigrations生成了 0058_auto__add_unique_setting_name_value. ...
- Ubuntu15.10 编译VLC Android(安卓)过程记录
持续更新中... 最后一次修改于 2016-03-20 15:33:45 1.必要库的安装 除基本编译环境(gcc.g++等外),需要额外安装如下的库(用于下载必要的依赖文件) (1)JDK 推荐安装 ...
- CALayer -- 备忘
CALayer layer是层,每个view上都会最少有一个layer,view上的可视化内容其实都是层. CALayer展示实例 let customView = UIView(frame: CGR ...
- FFMPEG视音频编解码零基础学习方法-b
感谢大神分享,虽然现在还看不懂,留着大家一起看啦 PS:有不少人不清楚“FFmpeg”应该怎么读.它读作“ef ef em peg” 0. 背景知识 本章主要介绍一下FFMPEG都用在了哪里(在这里仅 ...
- Table嵌套去掉子table的外边框
Table表格去掉子表格的边框 1. 父表格 <table align="center" style="border:none;cell-padding:0; ce ...
- 找到个好的讲PYTHON FILE IO的文档,收藏
现在我感觉快入门了哈, 这两天,可以用PYTHON写一点自己想要实现的东东了. 但文件,IO,编码,邮件,始终有点续不完全. 这个文档,我看行.. http://www.dabeaz.com/pyth ...
- $response->decoded_content; 和$response->content; 乱码问题
centos6.5:/root/podinns/lib#cat t1.pl use LWP::UserAgent; use HTTP::Date qw(time2iso str2time time2i ...
- DIV 清除样式浮动万能代码
.talk { width: 100%; margin: 10px 0; } .talk:after { ...