LInq之Take Skip TakeWhile SkipWhile Reverse Union Concat 用法

简介: 废话不多说,直接上代码,代码有注释!自行运行测试! class Program { static void Main(string[] args) { string[] names = { "郭靖", "李莫愁", "欧阳晓晓", "黄蓉", "黄药师", "郭靖", "黄蓉" }; //Take()方法:用于从一个序列的开头返回指定数量的元素。

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

    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("\n\n\n");
            ///////////////////////////////////////////////////////////////////////
            //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("\n\n\n");
            ///////////////////////////////////////////////////////////////////////
            //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("\n\n\n");
            ///////////////////////////////////////////////////////////////////////
            //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("\n\n\n");
            ///////////////////////////////////////////////////////////////////////
            //Reverse()方法:用于反转
            //////////////////////////////////////////////////////////////////////
            Console.WriteLine("Reverse用法1如下");
            foreach (var name in names.Reverse())
            {
                Console.WriteLine(name);
            }
            Console.WriteLine("\n\n\n");
            ///////////////////////////////////////////////////////////////////////
            //Distinct()方法:用于去掉重复元素
            //////////////////////////////////////////////////////////////////////
            Console.WriteLine("Distinct用法1如下");
            foreach (var name in names.Distinct())
            {
                Console.WriteLine(name);
            }
            Console.WriteLine("\n\n\n");
            ///////////////////////////////////////////////////////////////////////
            //Union()方法:用于合并两个序列,并去掉重复元素。
            //////////////////////////////////////////////////////////////////////
            Console.WriteLine("Union用法1如下");
            string[] names2 = {  "郭靖", "黄蓉","神雕","小龙女" };
            foreach (var name in names.Union(names2))
            {
                Console.WriteLine(name + " ");
            }
            Console.WriteLine("\n\n\n");
            ///////////////////////////////////////////////////////////////////////
            //Concat()方法:用于合并两个序列,但不会去掉重复元素。
            //////////////////////////////////////////////////////////////////////
            Console.WriteLine("Concat用法1如下");
            foreach (var name in names.Concat(names2))
            {
                Console.WriteLine(name + " ");
            }
            Console.ReadKey();
        }
      
    }

@陈卧龙的博客

相关文章
|
7月前
split(), reverse(),join()等函数用法
split(), reverse(),join()等函数用法
|
SQL 开发框架 .NET
linq中left join和inner join的正确用法
linq中left join和inner join的正确用法
sql字符处理函数concat()、concat_ws()
concat(“字符串1”,“字符串2”,…,“字符串n”)无分隔符拼接一个或多个字符串
149 0
sql字符处理函数concat()、concat_ws()
|
关系型数据库 MySQL 数据库
MySql常用函数(逻辑判断,字符串处理,日期函数)FIND_IN_SET、IF、ISNULL、IFNULL、NULLIF、SUBSTR、SUBSTRING_INDEX、CONCAT、LENGTH
MySql常用函数(逻辑判断,字符串处理,日期函数)FIND_IN_SET、IF、ISNULL、IFNULL、NULLIF、SUBSTR、SUBSTRING_INDEX、CONCAT、LENGTH
MySql常用函数(逻辑判断,字符串处理,日期函数)FIND_IN_SET、IF、ISNULL、IFNULL、NULLIF、SUBSTR、SUBSTRING_INDEX、CONCAT、LENGTH
|
索引
LeetCode 303. Range Sum Query - Immutable
给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。
97 0
LeetCode 303. Range Sum Query - Immutable
LeetCode 304. Range Sum Query 2D - Immutable
给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2)。
106 0
LeetCode 304. Range Sum Query 2D - Immutable
|
SQL
SQL中rank(),dense_rank(),row_number()的异同
rank函数用于返回结果集的分区内每行的排名,行的排名是相关行之前的排名数加一。
198 0
SQL中rank(),dense_rank(),row_number()的异同
|
算法 容器
常用集合算法 set_intersection() set_union() set_difference()
常用集合算法 set_intersection() set_union() set_difference()
下一篇
DataWorks