zoukankan      html  css  js  c++  java
  • Linq中Take、TakeWhile、Skip、SkipWhile的比较(转)

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

    Take()
                
    int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
    var first3Numbers = numbers.Take(3); //从第一个元素开始,获取三个 return的是前面的数
     
    Console.WriteLine("First 3 numbers:");
     
    foreach (var n in first3Numbers)
    {
          Console.WriteLine(n);//结果 5 4 1
    }
     
    TakeWhile()
                
    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
    }
     
     Skip()
                
    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
    }
                
    SkipWhile()
     
     int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
      
    //跳过不能被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 % 3 != 0);
    foreach (var n in allButFirst3Numbers)
    {
       Console.WriteLine(n);//结果3 9 8 6 7 2 0
    }
               
  • 相关阅读:
    补充 函数详解
    Python web前端 11 form 和 ajax
    进程线程之间的通信
    面向对象epoll并发
    socket发送静态页面
    进程与线程的表示,属性,守护模式
    并发
    django, tornado
    并行
    非阻塞套接字编程, IO多路复用(epoll)
  • 原文地址:https://www.cnblogs.com/dawenyang/p/6262690.html
Copyright © 2011-2022 走看看