参考文章:http://blog.csdn.net/lxfzgg/article/details/20534281

Take()

int[] numbers = { , , , , , , , , ,  };
var first3Numbers = numbers.Take(); //从第一个元素开始,获取三个 return的是前面的数 Console.WriteLine("First 3 numbers:"); foreach (var n in first3Numbers)
{
Console.WriteLine(n);//结果 5 4 1
}
 
TakeWhile()

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
}
 Skip()

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
}
            
SkipWhile()

 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的比较(转)的更多相关文章

  1. Linq 中的TakeWhile 和 SkipWhile

    这两个概念容易搞混 理解了一番后 在这里写下便于记忆 SkipWhile 可以理解为如果条件满足  就一直跳过   知道不满足后 就取剩下的所有元素(后面的不会再判断) TakeWhile 可以理解为 ...

  2. LINQ 中常用函数使用: Take TakeWhile Skip SkipWhile Reverse Distinct

    1,Take 方法 Take方法用于从一个序列的开头返回指定数量的元素. string[] names = { "郭靖", "李莫愁", "欧阳晓晓& ...

  3. Linq分区操作之Skip,SkipWhile,Take,TakeWhile源码分析

    Linq分区操作之Skip,SkipWhile,Take,TakeWhile源码分析 二:linq的分区操作 常用的分区操作:Take,TakeWhile,Skip,SkipWhile 三:Take ...

  4. LINQ中的陷阱--TakeWhile&SkipWhile

    在用TakeWhile,SkipWhile设置陷阱之前,我们先来看一看他们的兄弟Take和Skip: public static IEnumerable<T> Take<T>( ...

  5. Linq中关键字的作用及用法

    Linq中关键字的作用及用法 1.All:确定序列中的所有元素是否都满足条件.如果源序列中的每个元素都通过指定谓词中的测试,或者序列为空,则为 true:否则为 false. Demo: 此示例使用 ...

  6. 关于Linq中的Lambda表达式中OrderBy的深入理解

    起因:就是一段Linq语句,OrderBy里面的i是什么? IQueryable<Student> slist = (from s in EFDB.Student select s). O ...

  7. linq中AsEnumerable和AsQueryable的区别

    本文导读:用Linq来操作集合的时候会用到AsQueryable()和AsEnumerable(),何时该用AsQueryable()和何时该用AsEnumerable(),或许存在些疑惑.AsQue ...

  8. Sliverlight linq中的数组筛选数据库中的数据

    首先 什么是linq呢 ? LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特 ...

  9. Linq中join & group join & left join 的用法

    Linq中join & group join & left join 的用法 2013-01-30 11:12 12154人阅读 评论(0) 收藏 举报  分类: C#(14)  文章 ...

  10. Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法

    Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法:在写LINQ语句的时候,往往会看到AsEnumerable() ,AsQueryable() 和T ...

随机推荐

  1. js中使用prototype扩展对象方法

    //---------------------对象 //1. var HomeContrl = function(){ this.foo = 'bar'; //对象方法 this.intro = fu ...

  2. Python学习笔记——面向对象基础

    1.类和实例 1.1类的定义 类的定义使用class关键字,其后紧跟类名(通常大写开头),紧接着是(object),object是该类继承的类名,没有就继承object类. 实例化时就是类名+(),有 ...

  3. 使用South时候由于两个相同id的文件引起的问题

    由于之前版本控制的一个小失误, 在主分子上面调用python manage.py makemigrations生成了 0058_auto__add_unique_setting_name_value. ...

  4. Ubuntu15.10 编译VLC Android(安卓)过程记录

    持续更新中... 最后一次修改于 2016-03-20 15:33:45 1.必要库的安装 除基本编译环境(gcc.g++等外),需要额外安装如下的库(用于下载必要的依赖文件) (1)JDK 推荐安装 ...

  5. CALayer -- 备忘

    CALayer layer是层,每个view上都会最少有一个layer,view上的可视化内容其实都是层. CALayer展示实例 let customView = UIView(frame: CGR ...

  6. FFMPEG视音频编解码零基础学习方法-b

    感谢大神分享,虽然现在还看不懂,留着大家一起看啦 PS:有不少人不清楚“FFmpeg”应该怎么读.它读作“ef ef em peg” 0. 背景知识 本章主要介绍一下FFMPEG都用在了哪里(在这里仅 ...

  7. Table嵌套去掉子table的外边框

    Table表格去掉子表格的边框 1. 父表格 <table align="center" style="border:none;cell-padding:0; ce ...

  8. 找到个好的讲PYTHON FILE IO的文档,收藏

    现在我感觉快入门了哈, 这两天,可以用PYTHON写一点自己想要实现的东东了. 但文件,IO,编码,邮件,始终有点续不完全. 这个文档,我看行.. http://www.dabeaz.com/pyth ...

  9. $response->decoded_content; 和$response->content; 乱码问题

    centos6.5:/root/podinns/lib#cat t1.pl use LWP::UserAgent; use HTTP::Date qw(time2iso str2time time2i ...

  10. DIV 清除样式浮动万能代码

            .talk {             width: 100%;             margin: 10px 0;         }         .talk:after { ...