假设我有这个if语句:
foreach (MyModel m in SomeList)
{
if (m.pID != SomeValue && (m.xID != 0 && SomeFunction(m.xID) == false)
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我只想SomeFunction(m.xID) == false评估是否m.xID != 0如此,如果m.xID == 0不评估SomeFunction
目前,我将这个if语句分解为2个语句,并且我希望看到如何在保留逻辑的同时将这些语句组合成一个语句.这是原作:
foreach (MyModel m in SomeList)
{
if (m.xID != 0 && SomeFunction(m.xID) == false)
{
return false;
}
if (m.pID != SomeValue)
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
你正在寻找这个|| 运算符(C#参考)
if ((m.xID != 0 && SomeFunction(m.xID) == false) || (m.pID != SomeValue))
{
return false;
}
Run Code Online (Sandbox Code Playgroud)
如果这就是你的循环所做的那么我将倾向于完全删除循环.
此外,false只需使用!运算符,而不是比较某些东西.
if (SomeList.Any(MyModel m=>m.xID != 0 && !SomeFunction(m.xID) || m.pID != SomeValue))
return false;
Run Code Online (Sandbox Code Playgroud)