一个C#lambda表达式可以有多个语句吗?
C#lambda表达式是否可以包含多个语句?
(编辑:如下面几个答案中所引用的,这个问题最初是关于“行”而不是“语句”问的。)
当然:
List<String> items = new List<string>();
var results = items.Where(i =>
{
bool result;
if (i == "THIS")
result = true;
else if (i == "THAT")
result = true;
else
result = false;
return result;
}
);
你可以在lambda表达式中放置尽可能多的换行符; C#忽略换行符。
你可能打算询问多个陈述。
多个语句可以用大括号包装。
请参阅文档。
(我假设你真的在谈论多条语句而不是多条语句。)
您可以在使用大括号的lambda表达式中使用多个语句,但只有不使用大括号的语法才能转换为表达式树:
// Valid
Func<int, int> a = x => x + 1;
Func<int, int> b = x => { return x + 1; };
Expression<Func<int, int>> c = x => x + 1;
// Invalid
Expression<Func<int, int>> d = x => { return x + 1; };
链接地址: http://www.djcxy.com/p/31595.html
上一篇: Can a C# lambda expression have more than one statement?