zoukankan      html  css  js  c++  java
  • LInq之Take Skip TakeWhile SkipWhile Reverse Union Concat 用法

    废话不多说,直接上代码,代码有注释!自行运行测试!

        class Program
        { 
            static void Main(string[] args)
            {
                string[] names = { "郭靖", "李莫愁", "欧阳晓晓", "黄蓉", "黄药师", "郭靖", "黄蓉" };
    
                //Take()方法:用于从一个序列的开头返回指定数量的元素。 
                Console.WriteLine("Take方法直接输出前3个元素");
                foreach (var name in names.Take(3))
                {
                    Console.WriteLine(name);
                }
                var query = from n in names
                            where n.Length == 2
                            select n;
                Console.WriteLine("Take方法输出查询结果的前1个元素");
                foreach (var s in query.Take(1))
                {
                    Console.WriteLine(s);
                }
                Console.WriteLine("
    
    
    ");
                ///////////////////////////////////////////////////////////////////////
                //Skip()方法:用于跳过序列中指定个数的元素。
                //////////////////////////////////////////////////////////////////////
                Console.WriteLine("Skip方法跳过前3个元素");
                foreach (var name in names.Skip(3))
                {
                    Console.WriteLine(name);
                }
                Console.WriteLine("Skip方法跳过查询结果的前1个元素");
                foreach (var s in query.Skip(1))
                {
                    Console.WriteLine(s);
                }
                Console.WriteLine("
    
    
    ");
                ///////////////////////////////////////////////////////////////////////
                //TakeWhile()方法:用于取序列中从开头起符合条件的元素,直到遇到不符合条件的元素为止的所有元素。注意:当条件为假时,就停止了,后面的元素不会输出。
                //////////////////////////////////////////////////////////////////////
                Console.WriteLine("TakeWhile用法1如下");
                foreach (var name in names.TakeWhile(A=>A.Length==2))
                {
                    Console.WriteLine(name);
                }
                Console.WriteLine("TakeWhile用法2如下");
                //注意:当条件为假时,就停止了,后面的元素不会输出。 
                foreach (var name in names.TakeWhile((item, index) => item.Length < 4 && index < 4))
                {
                    Console.WriteLine(name);
                }
                Console.WriteLine("
    
    
    ");
                ///////////////////////////////////////////////////////////////////////
                //SkipWhile()方法:用于只要满足指定的条件,就跳过序列中得元素。注意:当遇到条件为假时,就停止跳越了,输出剩余的所有元素。
                //////////////////////////////////////////////////////////////////////
                Console.WriteLine("SkipWhile用法1如下");
                foreach (var name in names.SkipWhile(n => n.Length == 2))
                {
                    Console.WriteLine(name);
                }
                Console.WriteLine("SkipWhile用法2如下");
                //SkipWhile跳过名字小于4个字,并且索引小于2
                foreach (var s in names.SkipWhile((item, index) => item.Length < 4 && index < 2))
                {
                    Console.WriteLine(s);
                }
                Console.WriteLine("
    
    
    ");
                ///////////////////////////////////////////////////////////////////////
                //Reverse()方法:用于反转
                //////////////////////////////////////////////////////////////////////
                Console.WriteLine("Reverse用法1如下");
                foreach (var name in names.Reverse())
                {
                    Console.WriteLine(name);
                }
                Console.WriteLine("
    
    
    ");
                ///////////////////////////////////////////////////////////////////////
                //Distinct()方法:用于去掉重复元素
                //////////////////////////////////////////////////////////////////////
                Console.WriteLine("Distinct用法1如下");
                foreach (var name in names.Distinct())
                {
                    Console.WriteLine(name);
                }
                Console.WriteLine("
    
    
    ");
                ///////////////////////////////////////////////////////////////////////
                //Union()方法:用于合并两个序列,并去掉重复元素。
                //////////////////////////////////////////////////////////////////////
                Console.WriteLine("Union用法1如下");
                string[] names2 = {  "郭靖", "黄蓉","神雕","小龙女" };
                foreach (var name in names.Union(names2))
                {
                    Console.WriteLine(name + " ");
                }
                Console.WriteLine("
    
    
    ");
                ///////////////////////////////////////////////////////////////////////
                //Concat()方法:用于合并两个序列,但不会去掉重复元素。
                //////////////////////////////////////////////////////////////////////
                Console.WriteLine("Concat用法1如下");
                foreach (var name in names.Concat(names2))
                {
                    Console.WriteLine(name + " ");
                }
                Console.ReadKey();
            }
          
        }

    @陈卧龙的博客

  • 相关阅读:
    一个程序员的负罪感
    【软件安装记录篇】本地虚拟机Centos7快速安装MySQL
    三分钟熟悉进制转换与位运算
    Base64 编码原理
    Java 注解
    数据结构之链表-动图演示
    数据结构之红黑树-动图演示(下)
    数据结构之红黑树-动图演示(上)
    通过TreeMap 和 冒泡算法对JSON 进行排序
    Quartz 之 windowService
  • 原文地址:https://www.cnblogs.com/chenwolong/p/linq2.html
Copyright © 2011-2022 走看看