如何在 C# 的 lambda 函数中使用 if 语句
How to use an if statement in a lambda function in C#
我是C#新手,不太懂lambda,想把这段代码转成lambda表达式
private static bool my_method(int i)
{
if(i == 0)
{
return true;
}
else
{
return false;
}
}
我想将此代码转换为 lambda 表达式,谢谢
Func<int, bool> func = (i) => {
if (i == 0) return true;
else return false;
};
对此已有答案,但我想包含更多详细信息。
如果你有
这样的函数
bool MyMethod(int i)
{
...//Method body
}
并且您想将其更改为 lambda 表达式,您可以使用 Func<ReturnType, Parmeter1, Parameter2, ...>
委托,其中 MyMethod()
之前定义为:
using System;
Func<int, bool> myLabmdaExp = (i) => MyMethod(i); //Here it is implied that i is an int
或者您可以在大括号 {}
中定义表达式,例如:
using System;
Func<int, bool> myLabmdaExp = (i) =>
{
....//Function body
}
在你的情况下,
Func<int, bool> func = (val) =>
{
if(i==0)
{
return true;
}
else
{
return false;
}
}
您可以使用一些布尔逻辑将您的 lamda 表达式简化为
Func<int, bool> func = (val) => val==0;
您的代码,通过函数名称合法化,如下所示:
private static bool SomeFunction(int i)
{
if (i == 0)
{
return true;
}
else
{
return false;
}
}
可以改写为:
private static bool SomeFunction(int i)
{
return i == 0;
}
这又可以重写为:
private static bool SomeFunction(int i) => i == 0;
并且可以将其重写为 Func<int, bool>
lambda,如下所示:
Func<int, bool> someFunction = i => i == 0;
我是C#新手,不太懂lambda,想把这段代码转成lambda表达式
private static bool my_method(int i)
{
if(i == 0)
{
return true;
}
else
{
return false;
}
}
我想将此代码转换为 lambda 表达式,谢谢
Func<int, bool> func = (i) => {
if (i == 0) return true;
else return false;
};
对此已有答案,但我想包含更多详细信息。
如果你有
这样的函数bool MyMethod(int i)
{
...//Method body
}
并且您想将其更改为 lambda 表达式,您可以使用 Func<ReturnType, Parmeter1, Parameter2, ...>
委托,其中 MyMethod()
之前定义为:
using System;
Func<int, bool> myLabmdaExp = (i) => MyMethod(i); //Here it is implied that i is an int
或者您可以在大括号 {}
中定义表达式,例如:
using System;
Func<int, bool> myLabmdaExp = (i) =>
{
....//Function body
}
在你的情况下,
Func<int, bool> func = (val) =>
{
if(i==0)
{
return true;
}
else
{
return false;
}
}
您可以使用一些布尔逻辑将您的 lamda 表达式简化为
Func<int, bool> func = (val) => val==0;
您的代码,通过函数名称合法化,如下所示:
private static bool SomeFunction(int i)
{
if (i == 0)
{
return true;
}
else
{
return false;
}
}
可以改写为:
private static bool SomeFunction(int i)
{
return i == 0;
}
这又可以重写为:
private static bool SomeFunction(int i) => i == 0;
并且可以将其重写为 Func<int, bool>
lambda,如下所示:
Func<int, bool> someFunction = i => i == 0;