首先解释一下Skip和Take都用来干嘛的。

1.Skip跳过指定数量的项,并获取剩余的项

2.Take提取制定数量的项

3.TakeWhile根据指定条件提出数据

4.SkipWhile根据指定条件跳过数据

实例如下:

/// <summary>
/// Take用法
/// </summary>
public void Linq1()
{int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };var first3Numbers = numbers.Take(3); //从第一个元素开始,获取三个Console.WriteLine("First 3 numbers:");foreach (var n in first3Numbers){Console.WriteLine(n);}
}结果
5
4
1
/// <summary>
/// TakeWhile用法
/// </summary>
public void Linq2()
{int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };//在这里需要注意.使用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 < 6);Console.WriteLine("First numbers less than 6:");foreach (var n in firstNumbersLessThan6){Console.WriteLine(n);}
}结果
5
4
1
3
/// <summary>
/// Skip用法
/// </summary>
public void Linq3()
{int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };var allButFirst4Numbers = numbers.Skip(4);  //跳过前四个元素,获取后面所有的元素Console.WriteLine("All but first 4 numbers:");foreach (var n in allButFirst4Numbers){Console.WriteLine(n);}
}结果
9
8
6
7
2
0
/// <summary>
/// SkipWhile用法
/// </summary>
public void Linq4()
{int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };//这里和TakeWhiel又有些不一样。var allButFirst3Numbers = numbers.SkipWhile(n => n < 6);Console.WriteLine("结果:");foreach (var n in allButFirst3Numbers){Console.WriteLine(n);}}结果
9
8
6
7
2
0

Linq中Skip和Take用法(TakeWhile和SkipWhile用法)相关推荐

  1. LinQ中Skip()方法和Take()方法的使用

    其结果是: 转载于:https://blog.51cto.com/11871779/2084283

  2. Linq中的Where与SkipWhile

    本文将介绍Linq中的Where与SkipWhile的用法,有时我们容易混淆它们.下面来看一个简单的UnitTest: [TestMethod] public void TestSkipWhileAn ...

  3. linq中给字段添加别名

    linq 是我们在查询中经常回用到的一种形式,比如我们创建一个类,然后List<添加> 并绑定到表格中public class Modeltest{string id;public str ...

  4. LINQ中IQueryable 和IEnumberable的区别?用错问题很大。

    为啥要对比IQueryable和IEnumberable呢?有一次项目已经发布到生产环境,但是其中一个列表页面特别的慢,明明在测试环境正常,到线上怎么慢了呢?于是就检查这个页面的代码,表面看linq的 ...

  5. 用日志记录LINQ中的所有增删改的SQL语句的方法

    我们知道LINQ中的增删改都要调用SubmitChanges方法,我们记录所有SQL的方式就是重写(override)DataContext中的SubmitChanges方法,为了避免每次修改dbml ...

  6. Python中的map()函数和reduce()函数的用法

    Python中的map()函数和reduce()函数的用法 这篇文章主要介绍了Python中的map()函数和reduce()函数的用法,代码基于Python2.x版本,需要的朋友可以参考下  

  7. python open 打开是什么类型的文件-详解Python中open()函数指定文件打开方式的用法...

    文件打开方式 当我们用open()函数去打开文件的时候,有好几种打开的模式. 'r'->只读 'w'->只写,文件已存在则清空,不存在则创建. 'a'->追加,写到文件末尾 'b'- ...

  8. 关于C++中函数指针的使用(包含对typedef用法的讨论)

    关于C++中函数指针的使用(包含对typedef用法的讨论) (一)简单的函数指针的应用. //形式1:返回类型(*函数名)(参数表) char (*pFun)(int); char glFun(in ...

  9. PHP中的常见魔术方法功能作用及用法实例

    这篇文章主要介绍了PHP中的常见魔术方法功能作用及用法实例,本文讲解了构造函数和析构函数__construct()和__desctruct()以及属性重载(Property Overloading)_ ...

  10. LINQ中ForEach方法的使用

    标签: linq 2016-06-25 12:47 409人阅读 评论(0) 收藏 举报分类: LINQ(5) 我の原创(113) 版权声明:本文为博主原创文章,未经博主允许不得转载.LINQ中For ...

最新文章

  1. 四十八、减少磁盘延迟时间的方法
  2. 开源无人机_开源无人机,欧洲开源等等
  3. python资料-Python资料汇总(建议收藏)
  4. Python 语言程序设计(3-1)字符串处理函数和相关功能
  5. TestRange.cs error CS0104: `Range' is an ambiguous reference between `System.Range' and Gtk.Range
  6. 洛谷P2057 [SHOI2007]善意的投票 题解
  7. Web前端 学习知识点总结(十二)jQuery进阶 表单验证和简单正则表达式
  8. js监听鼠标的滚轮滚动事件
  9. WireShark定位QQ语音通话IP检测
  10. Android仿微信朋友圈图片上传选择器布局
  11. BUUCTF Reverse/findKey
  12. 华为防火墙管理地址的坑
  13. python目标跟踪精度曲线图_目标跟踪配置(三)-评价指标-benchmark(更新中,关注请收藏。。。)...
  14. 用键盘打开计算机管理,windows10系统使用键盘打开设备管理器的三种方法
  15. 每日一道Leetcode -网格矩阵中的路径相关系列【动态规划|路径中(不)含值|有无障碍物|最小路径和】
  16. Xilinx XDMA 上位机应用程序控制逻辑
  17. 一个免费、快速好用的汉语拼音离线翻译工具
  18. 程序员生存定律--细论软件这个行当的根本特征
  19. 飘零网络验证-商业版3和金盾版1.5-研究中
  20. 【机器学习】集成学习Stacking

热门文章

  1. 小程序服务器获取appid,微信小程序小程序appid如何获取
  2. asus路由器无线桥接模式设置
  3. CRMEB打通版简单一步实现类似京东的PLUS会员功能
  4. 【presto】presto 查询hive分桶表问题
  5. 小镇青年的神话背后,是你想不到的辛酸小镇青年
  6. Deformable DETR进行目标检测,解决size mismatch问题
  7. 系统分析师学习笔记(十七)
  8. Docker配置阿里云镜像加速
  9. can例程 ecu_ECU程序及CAN总线实现
  10. Oracle RAC命令