假设我有这个if语句:
foreach (MyModel m in SomeList)
{
if (m.pID != SomeValue && (m.xID != 0 && SomeFunction(m.xID) == false)
{
return false;
}
}
我只希望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;
}
}
答案 0 :(得分:5)
您正在寻找此|| Operator (C# Reference)
if ((m.xID != 0 && SomeFunction(m.xID) == false) || (m.pID != SomeValue))
{
return false;
}
答案 1 :(得分:5)
如果你的循环正在进行,那么我将倾向于完全删除循环。
此外,不要将某些内容与false
进行比较,只需使用!
运算符即可。
if (SomeList.Any(MyModel m=>m.xID != 0 && !SomeFunction(m.xID) || m.pID != SomeValue))
return false;