【问题标题】:What is a lambda expression? [closed]什么是 lambda 表达式? [关闭]
【发布时间】:2012-07-29 12:35:52
【问题描述】:

使用 lambda 表达式有什么意义。

就像在 C# 中一样,foreach 循环可能需要 3-4 行来分配值

使用兰巴

List.foreach(x=>x.something = new value) 

我想了解更多关于 lambda 的信息以及它在 C# 中的更多高级用法

【问题讨论】:

  • 我不敢相信这不是重复的……如果是这样的话,我认为这不是一个坏问题(需要整理一下)。

标签: asp.net asp.net-mvc lambda expression-trees


【解决方案1】:

lambda 表达式更像是一种方法的简写语法。

采用以下 lambda 表达式:

p => p.FullName

这相当于:

string getFullName(Person p)
{
    return p.FullName;
}

它的用法允许您创建匿名函数。所以一个接受委托的方法将被定义为:

public delegate string FullNameDelegate(Person p);
public void DoSomething(FullNameDelegate getter)
{
   Person p = new Person();
   string fullname = getter(p);
}
public string GetFullName(Person p)
{
    return p.FullName;
}

DoSomething(new FullNameDelegate(GetFullName));

等效的 lambda 表达式是:

public void DoSomething(Func<Person, string> getter)
{
   Person p = new Person();
   string fullname = getter(p);
}

DoSomething(p => p.FullName);

【讨论】:

    猜你喜欢
    • 2011-04-19
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-09
    • 1970-01-01
    • 2022-11-14
    相关资源
    最近更新 更多