LINQ notes2 lambda expression

int[] oddNums = // using named method
Common.FilterArrayOfInts(nums, Application.IsOdd);
int[] oddNums = // using anonymous method
Common.FilterArrayOfInts(nums, delegate(int i){return((i & 1) == 1);});
int[] oddNums = // using lambda expression
Common.FilterArrayOfInts(nums, i => ((i & 1) == 1));

第一种写法是最传统的。这是传入的方法定义。可以看到第二个参数是个委托。(有点像C++里面的函数指针)

public class Application
{
    public static bool IsOdd(int i)
    {
        return ((i & 1) == 1);
    } 
}

第二种写法是匿名委托。

而第三种写法则是lambda expression。这三种方法功能完全一致。写法不同而已。因此,理解的lambda expression其实就是个匿名委托的简单写法。他的形式就是 x => x。如果传入的是两个参数,那么形式为(x,y)=>x==y。

原文地址:https://www.cnblogs.com/cheetahw/p/2628667.html