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时,停止跳过,直接返回剩下的所有元素.

  • 相关阅读:
    Asp.NET 4.0 ajax实例DataView 模板编程1
    ASP.NET 4.0 Ajax 实例DataView模板编程 DEMO 下载
    部分东北话、北京话
    .NET 培训课程解析(一)
    ASP.NET 4.0 Ajax 实例DataView模板编程2
    ASP.NET Web Game 架构设计1服务器基本结构
    ASP.NET Web Game 构架设计2数据库设计
    TFS2008 基本安装
    Linux上Oracle 11g安装步骤图解
    plsql developer远程连接oracle数据库
  • 原文地址:https://www.cnblogs.com/wangxiao666/p/12635657.html
Copyright © 2011-2022 走看看