zoukankan      html  css  js  c++  java
  • Linq入门演练---(2)lambda表达式

    今天大家一同学习下lambda表达式, lambda表达式使用起来更方便, lambda表达式其实是一个匿名函数,使用的运算符为=>

       语法: (参数)=》表达式

       如果只有一个参数,可以不使用括号,多个参数用逗号隔开.

       (x,y)=>x==y

      如果没有参数,使用空括号表示

      ()=>表达式

      1.where()方法

       代码:

    1. privatevoid button1_Click(object sender, EventArgs e) 
    2.     { 
    3.         //查询大于10的元素 
    4.         string str = ""
    5.         int[] arrTwo = { 10, 4, 6, 8, 90, 3 }; 
    6.         var query = arrTwo.Where(i=>i>=10); 
    7.         foreach (var item in query) 
    8.         { 
    9.             str += item.ToString() + " "
    10.         } 
    11.         Console.Write(str); 
    12.     } 
        private void button1_Click(object sender, EventArgs e)
            {
                //查询大于10的元素
                string str = "";
                int[] arrTwo = { 10, 4, 6, 8, 90, 3 };
                var query = arrTwo.Where(i=>i>=10);
                foreach (var item in query)
                {
                    str += item.ToString() + "
    ";
                }
                Console.Write(str);
            }

    结果

       10    90

      2. OrderBy()排序

        代码:按升序排列

    1. //排序 
    2.        int[] arrTwo = { 10, 4, 6, 8, 90, 3 }; 
    3.        var query = arrTwo.OrderBy(i =>i); 
    4.        foreach (var item in query) 
    5.        { 
    6.            Console.WriteLine(item.ToString()); 
    7.        } 
         //排序
                int[] arrTwo = { 10, 4, 6, 8, 90, 3 };
                var query = arrTwo.OrderBy(i =>i);
                foreach (var item in query)
                {
                    Console.WriteLine(item.ToString());
                }

       结果:

    1. 10 
    2. 90 
    3
    4
    6
    8
    10
    90

    如果是想按降序排列,使用OrderByDescending方法!

    3.Skip()和SkipWhile()

        Skip()用来跳过指定数目的元素,

        SkipWhile是根据一定的条件跳过满足条件的元素,但是,SkipWhile只跳过第一个满足条件的元素,并不是跳过所有满足条件的元素,

         如果下一个元素不满足条件,则停止向下执行

       代码

    1. //跳过前3个元素 
    2.             int[] arrTwo = { 10, 4, 6, 8, 90, 3 }; 
    3.             var query = arrTwo.Skip(3); 
    4.             Console.WriteLine("skip用法"); 
    5.             foreach (var item in query) 
    6.             { 
    7.                 Console.WriteLine(item.ToString()); 
    8.             } 
    9.  
    10.             Console.WriteLine("skipwhile用法"); 
    11.             var query1 = arrTwo.SkipWhile(i=>i>6); 
    12.             foreach (var item in query1) 
    13.             { 
    14.                 Console.WriteLine(item.ToString()); 
    15.             } 
    //跳过前3个元素
                int[] arrTwo = { 10, 4, 6, 8, 90, 3 };
                var query = arrTwo.Skip(3);
                Console.WriteLine("skip用法");
                foreach (var item in query)
                {
                    Console.WriteLine(item.ToString());
                }
    
                Console.WriteLine("skipwhile用法");
                var query1 = arrTwo.SkipWhile(i=>i>6);
                foreach (var item in query1)
                {
                    Console.WriteLine(item.ToString());
                }

    结果:

      

    1. skip用法 
    2. 90 
    3. skipwhile用法 
    4. 90 
    skip用法
    8
    90
    3
    skipwhile用法
    4
    6
    8
    90
    3

    4.Take()和TakeWhile()

       Take()从集合中提取指定书目的元素

       TakeWhile从集合中第一个元素开始,如果为true,继续提取下一个元素,如果为FALSE,则停止向下执行。

        如果第一个元素不满足条件,则不往下执行。

       代码:

    1. //提取元素 
    2.             int[] arrTwo = { 10,20, 4, 6, 8, 90, 3 }; 
    3.             var query = arrTwo.Take(3); 
    4.             Console.WriteLine("take用法"); 
    5.             foreach (var item in query) 
    6.             { 
    7.                 Console.WriteLine(item.ToString()); 
    8.             } 
    9.             //只提取大于8的元素 
    10.             var query2 = arrTwo.TakeWhile(i=>i>8); 
    11.             Console.WriteLine("TakeWhile用法"); 
    12.             foreach (var item in query2) 
    13.             { 
    14.                 Console.WriteLine(item.ToString()); 
    15.             } 
    //提取元素
                int[] arrTwo = { 10,20, 4, 6, 8, 90, 3 };
                var query = arrTwo.Take(3);
                Console.WriteLine("take用法");
                foreach (var item in query)
                {
                    Console.WriteLine(item.ToString());
                }
                //只提取大于8的元素
                var query2 = arrTwo.TakeWhile(i=>i>8);
                Console.WriteLine("TakeWhile用法");
                foreach (var item in query2)
                {
                    Console.WriteLine(item.ToString());
                }

    结果:

    1. take用法 
    2. 10 
    3. 20 
    4. TakeWhile用法 
    5. 10 
    6. 20 
    take用法
    10
    20
    4
    TakeWhile用法
    10
    20

    5.Distinct()消除集合中重复的元素

      代码:

    1. privatevoid button5_Click(object sender, EventArgs e) 
    2.        { 
    3.            //消除集合中的元素 
    4.            int[] arrTwo = { 10, 20, 4, 6, 8, 90, 3,10,6 }; 
    5.            var query = arrTwo.Distinct(); 
    6.            foreach (var item in query) 
    7.            { 
    8.                Console.WriteLine(item.ToString()); 
    9.            } 
    10.        } 
     private void button5_Click(object sender, EventArgs e)
            {
                //消除集合中的元素
                int[] arrTwo = { 10, 20, 4, 6, 8, 90, 3,10,6 };
                var query = arrTwo.Distinct();
                foreach (var item in query)
                {
                    Console.WriteLine(item.ToString());
                }
            }

    6. Concat()连接两个集合,把两个集合中的数据放置到一个新的对象中

    7. union用来求两个集合的并集

        intersect用来求两个集合的交集

       except用来求两个集合的差集

  • 相关阅读:
    CSS3 页面跳转的动画效果
    JS/React 判断对象是否为空对象
    React 根据官方总结的规范
    ckeditor字数限制
    swfobject.js IE兼容问题
    Jcrop 做图片剪裁 在IE中无法显示问题解决办法
    WebApp 中用 hashchange 做路由解析
    全国省市区Json文件 ,做省市区联动很轻松
    解决用友U8删除用户时提示“用户已启用”不能删除的问题
    CFUpdate高速模式下出现Error #2038提示的解决方案
  • 原文地址:https://www.cnblogs.com/itjeff/p/3359567.html
Copyright © 2011-2022 走看看