zoukankan      html  css  js  c++  java
  • LINQ入门笔记----LINQ To Object<Take(),TakeWhile(),Skip(),SkipWhile()>

    Take()方法

            Take()从序列的开头返回指定数量的连续元素.

            方法有两个参数:

      • source数据源;
      • count要返回的元素数量.

            示例:

                

        int[] groupInts = new[] {65, 84, 74, 89, 51, 54, 24, 32, 48, 7, 12, 58, 64};
    
     
    
        var lists = groupInts.OrderByDescending(a => a).Take(5);//降序排序取前五
    
     
    
        Console.WriteLine($"排名前五的是:");
    
     
    
        foreach (var list in lists)
    
        {
    
             Console.Write($"{list},");
    
        }
    
     
    
    result:89.84,74,65,64,

     

    TakeWhile()方法

            TakeWhile()当指定的条件为真时,返回序列中的元素;

            方法有两个参数:

      • IEnumerable<TSource>参数表示数据源;
      • Func<TSource, Boolean>

            示例:

     

     

        int[] Ints = new int[] {225,78,32,45,87,74,96,57,28,77};
    
     
    
        IEnumerable<int> items;
    
        
    
        items = Ints.TakeWhile(ints => ints > 50);
    
     
    
        foreach (var variable in items)
    
        {
    
            Console.Write(variable+" ");
    
        }
    
     
    
    result:225 78 

     

            这里要说明的一点:TakeWhile()方法虽然是获取序列中满足条件的元素,但是,存在的一个坑就是这个返回元素是有一个机制的:如果当前的元素不满足条件那么读取就会停止.换言之,当我们读到32时,它不满足我们的条件,那么后面的元素将不会被读取,所以,鄙人认为,此方法若用于读取范围数值需要与OrderBy联用.

     

    Skip()方法

            Skip()跳过序列中指定数量的元素,返回剩余的元素.

            参数:

      • Source,数据源;
      • Count,跳过的元素个数

            示例:

     

        int[] Ints = new int[] {225,78,32,45,87,74,96,57,28,77};
    
     
    
        var items = Ints.OrderByDescending(n => n).Skip(3);//降序排序后跳过3个元素将剩余元素返回
    
     
    
        foreach( var variable in items)
    
            {
    
                Console.WriteLine($"{variable},");
    
            }
    
     
    
    resault:75,69,68,54,54,48,42,36,12,11,

     

    SkipWhile()方法

            SkipWhile()跳过满足条件的元素,将剩下的元素返.

      • IEnumerable<TSource>参数表示数据源;
      • Func<TSource, Boolean>

            实例:

     

        int[] Ints = new int[] {225,78,32,45,87,74,96,57,28,77};
    
        
    
        var items = Ints.SkipWhile(n => n % 2 != 0);
    
     
    
        foreach( var variable in items)
    
        {
    
            Console.Write($"{variable},");
    
        }
    
     
    
    resault:84,78,75,69,68,84,48,42,36,12,11, 

     

            这里和TakeWhile()一样,当结果为false时,停止跳过,直接返回剩下的所有元素.

  • 相关阅读:
    do...while(0)的妙用
    2013-07-23工作记录
    2013-07-22工作记录
    完全零基础入门——第二天
    【转】学习Flex ActionScript 3.0 强烈推荐电子书
    完全零基础入门——第一天
    【转】待整理
    【luogu P7599】雨林跳跃
    【ybt金牌导航5-4-4】【luogu P4842】城市旅行
    【ybt金牌导航5-4-3】【luogu P2387】魔法森林
  • 原文地址:https://www.cnblogs.com/wangxiao666/p/12635657.html
Copyright © 2011-2022 走看看