Ram*_*eef 1 c# if-statement where
有没有什么好的做法可以在lambda表达式中编写AND,以便在Where()函数中编写以下IF
lst.Where(obj=> {
if (obj.Prop1 == true && obj.Prop2 == true)
return true;
return false;
});
Run Code Online (Sandbox Code Playgroud)
任何不写的理由:
lst.Where(obj => obj.Prop1 && obj.Prop2)
Run Code Online (Sandbox Code Playgroud)
?一般来说:
if (foo)
到if (foo == true)
当你有一个代码结构:
if (condition)
{
return true;
}
else
{
return false;
}
Run Code Online (Sandbox Code Playgroud)
然后你可以用以下代替它:
return condition;
Run Code Online (Sandbox Code Playgroud)
在lambda表达式中和其他任何东西一样真实 - 除了像你的lambda表达式之外,它意味着你可以从语句lambda(围绕正文的大括号)移动到表达式lambda(没有大括号).
使用条件运算符,第二点也超出了true和false.我通常会将此转换为:
if (condition)
{
return x;
}
else
{
return y;
}
Run Code Online (Sandbox Code Playgroud)
至
return condition ? x : y;
Run Code Online (Sandbox Code Playgroud)