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用来求两个集合的差集

原文地址:https://www.cnblogs.com/itjeff/p/3359567.html