当前位置:编程技术网 > 技术文章 > C#3.0 序列教程 > 文章详细内容

C#3.0 序列教程 (5) - Lambda表达式

lambda表达式: 借助delegate机制实现的更接近于自然语言的匿名方法
lambda表达式实际 是将 一个匿名方法写成了 表达式的形式


class Program

{

    static void Main(string[] args)

    {

        var lst = new List<int>

        {

            1,3,5,2,2,1,4,111,2,3222

        };

        /* 使用 lambda表达式 之前用匿名类的 等同写法

        var lst1 = lst.FindAll(

            delegate(int n)

            {

                return n.ToString().IndexOf("2") != -1;

            }

        );

        */

        //lambda表达式方式:借助delegate机制实现的更接近于自然语言的匿名方法

        //lambda表达式 是将 一个匿名方法写成了 表达式的形式


    //使用lambda表达式代替上面匿名方法的写法

        var lst1 = lst.FindAll(

          (s) => {

              //int x = 100;

              return s.ToString().IndexOf("2") != -1;

          }

        );

        /*

         * lambda表达式格式:

         * (参数列表) => 表达式或者语句块

         *

         * 可以有多个参数,一个参数,或者无参数。参数类型可以隐式或者显式。

         * 例如:

         * (x, y) => x*y //多参数,隐式类型=> 表达式

         * x=> x*10 //单参数, 隐式类型=>表达式

         * x=> {int x = 100; return x*10;} //单参数,隐式类型=>语句块

         * (int x) => x*10 // 单参数,显式类型=>表达式

         * (int x)=> {return x*10; } // 单参数,显式类型=>语句块

         * () => Console.WriteLine() /无参数  

         *

         */

        foreach (var i in lst1)

        {

            Console.WriteLine(i);

        }

    }

}

作者|来源:原创(17fx.net)发表于:2009-3-11 22:12:19
下一篇 没有了