C#3.0 序列教程 (5) - Lambda表达式
lambda表达式实际 是将 一个匿名方法写成了 表达式的形式
class Program
{
    static void 
    {
        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);
        }
    }
}