zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    leetcode——202.快乐数
    leetcode——136. 只出现一次的数字
    leetcode——74.搜索二维矩阵
    leetcode——240.搜索二维矩阵
    leetcode——414.第三大的数
    020 迭代器模式
    019 模板模式
    018 中介者模式
    017 命令模式
    016 责任链模式
  • 原文地址:https://www.cnblogs.com/yangxi1081/p/2487629.html
Copyright © 2011-2022 走看看