C# 3.0 - Lambda

作者:vkvi 来源:千一网络(原创) 日期:2009-8-16

注意是 lambda,而不是 lamda。

Lambda 最显著的标志是有个“=>”:Lambda 表达式可以看作一个函数;“=>”左边是参数,没有参数或多个参数时,使用小括号括起来;右边是函数体,必要时使用大括号括起来。

int[] arr = new int[] { 1, 2, 3, 4 };
Response.Write(arr.Count(n => n > 2)); // 2

arr.Count 有两个重载函数,其中第二个就是一个 Func,我们就是用了第二个重载函数。

上面的式子表示:数组中符合 n > 2 的项目有多少个。1、2、3、4 中,只有 3 和 4 符合大于 2 的条件,所以结果为 2。

再看一个例子:

public partial class _Default : System.Web.UI.Page
{
    delegate int Foo(int m); // 委托,台湾译为委派。
    
    protected void Page_Load(object sender, EventArgs e)
    {
        Foo foo = n => n * n;
        Foo foo2 = n => n * n * n;
        Response.Write(foo(5).ToString()); // 25
        Response.Write("<br>");
        Response.Write(foo2(5).ToString()); // 125
    }
}

如果不返回值,还可以再简单点,比如:

应用示例:霸道的 Lambda 事件处理程序表达式

相关文章
文章评论
  • 1 楼:评论
    good!
    thank you!
  • 2 楼:2010年5月26日 17:46:38

    ╭︿︿︿╮
    {/ ·· /}
    ( (00) )
      ︶︶︶