如何在lambda表达式中组合多个语句

D J*_*D J 10 c# lambda

我是这个LINQ领域的新手,有一件事我想做.

我有一个动作委托(如下所示),我想在lambda表达式中转换.

      Action<string> custom = delegate(string name)
            {
                lstCutomers.Add(new Customer(name, coutries[cnt]));
                name = name + " Object Created";
            };
Run Code Online (Sandbox Code Playgroud)

同样的lambda表达式是什么.我只是想知道我可以在lambda中写多个语句,如果没有那么为什么?

提前致谢.

Geo*_*ett 18

你不能创建一个lambda 表达式,因为你没有返回任何东西.但是,您可以创建一个语句 lambda:

Action<string> custom = (name) =>
        {
            lstCutomers.Add(new Customer(name, coutries[cnt]));
            name = name + " Object Created";
        };
Run Code Online (Sandbox Code Playgroud)

  • @GeorgeDuckett:请注意,在你的第一个评论中,你所说的是`Expression`,它只在将lambda表达式转换为表达式树时使用.这与此无关.语句lambdas和非语句lambda都是lambda表达式.(规范实际上并没有使用术语"语句lambda" - 它讨论了lambda表达式,其中一个body是一个表达式或一个语句体.) (3认同)