• Linq学习笔记延迟操作符(分区操作符)


    3.分区操作符

    Take

    作用:可以返回来自输入序列中指定数量的元素,并从输入序列的第一个元素开始计数。

    简单的说就是获取序列中的前几项

    原型

        public static IEnumerable<T> Take<T>(
            this IEnumerable<T> source,int count);

    例子

        static void Main(string[] args)
        {
            string[] items = { "Hello World", "Welcome to MVC", "Linq to Sql"};
    
            var result = items.Take<string>(2);
            //显示查询结果
             foreach (var item in result)
            {
                Console.WriteLine(item);
            }
    
            Console.Read();
        }

    结果

    linq_jieguo7

    TakeWhile

    作用:可以在指定的一些条件为True时从输入序列中提取元素,从序列中的第一个

    元素开始,其他的输入元素被跳过。

    原型

        public static IEnumerable<T> TakeWhile<T>(
            this IEnumerable<T> source,
            Func<T, bool> predicate);
        public static IEnumerable<T> TakeWhile<T>(
            this IEnumerable<T> source,
            Func<T, int, bool> predicate);

    例子

        static void Main(string[] args)
        {
            string[] items = { "Hello World", "Welcome to MVC", "Linq to Sql"};
    
            var result = items.TakeWhile<string>(c => c.IndexOf("W")>=0);
            //显示查询结果
             foreach (var item in result)
            {
                Console.WriteLine(item);
            }
    
            Console.Read();
        }

    结果

    lint_jieguo8

        static void Main(string[] args)
        {
            string[] items = { "Hello World", "Welcome to MVC", "Linq to Sql"};
    
            var result = items.TakeWhile<string>((c, i) => c.IndexOf("W")>=0 && i < 1);
            //显示查询结果
             foreach (var item in result)
            {
                Console.WriteLine(item);
            }
    
            Console.Read();
        }

    结果

    lint_jieguo9

    Skip

    作用:将跳过序列中从该序列的第一个元素开始的制定数量的元素,并取出其余的元素

    原型

        public static IEnumerable<T> Skip<T>(
            this IEnumerable<T> source, 
            int count);

    例子

       static void Main(string[] args)
       {
           string[] items = { "Hello World", "Welcome to MVC", "Linq to Sql"};
    
           var result = items.Skip(2);
           //显示查询结果
            foreach (var item in result)
           {
               Console.WriteLine(item);
           }
    
           Console.Read();
       }

    结果

    linq_jieguo_skip

    SkipWhile

    作用:操作一个输入序列,在知道条件为true时,跳过一些元素,提取剩余的元素。

    原型

        public static IEnumerable<T> SkipWhile<T>(
            this IEnumerable<T> source, 
            Func<T, bool> predicate);
        public static IEnumerable<T> SkipWhile<T>(
            this IEnumerable<T> source, 
            Func<T, int, bool> predicate);

    例子

        static void Main(string[] args)
        {
            string[] items = { "Hello World", "Welcome to MVC", "Linq to Sql"};
    
            var result = items.SkipWhile(c=>c.StartsWith("H"));
            //显示查询结果
             foreach (var item in result)
            {
                Console.WriteLine(item);
            }
    
            Console.Read();
        }

    结果

    linq_jieguo_skipwhile_1

    例子

        static void Main(string[] args)
        {
            string[] items = { "Hello World", "Welcome to MVC", "Linq to Sql"};
    
            var result = items.SkipWhile((c,i)=>c.IndexOf("l") > 0 && i < 2);
            //显示查询结果
             foreach (var item in result)
            {
                Console.WriteLine(item);
            }
    
            Console.Read();
        }

    结果

    linq_jieguo_skipwhile_2

  • 相关阅读:
    漫画图解红黑树
    HashMap原理
    从底层原理深度剖析volatile关键字
    一致性哈希算法
    OAuth2.0 授权模式详解
    RocketMQ消息的顺序、重复和事务
    正向代理 vs 反向代理
    JVM内存分配以及存储
    023_JDK8.0新特性<四>StreamAPI_4_Stream终止操作
    022_JDK8.0新特性<四>StreamAPI_3_Stream中间操作
  • 原文地址:https://www.cnblogs.com/yangxi1081/p/2487629.html
Copyright © 2020-2023  润新知