foreach (var name in parent.names)
{
if name.lastname == null)
{
Violated = true;
this.message = "lastname reqd";
}
if (!Violated)
{
Violated = !(name.firstname == null) ? false : true;
if (ruleViolated)
this.message = "firstname reqd";
}
}
每当违反是真的,我想立即退出foreach
循环。我该怎么做?
答案 0 :(得分:176)
使用break
;
与您的问题无关,我在您的代码中看到了以下行:
Violated = !(name.firstname == null) ? false : true;
在此行中,您采用布尔值(name.firstname == null)
。然后,您将!
运算符应用于它。然后,如果值为true,则将Violated设置为false;否则为真。所以基本上,Violated设置为与原始表达式(name.firstname == null)
相同的值。为什么不使用它,如:
Violated = (name.firstname == null);
答案 1 :(得分:68)
只需使用声明:
break;
答案 2 :(得分:24)
使用break
关键字。
答案 3 :(得分:5)
看看这段代码,它可以帮助你快速退出循环!
foreach (var name in parent.names)
{
if (name.lastname == null)
{
Violated = true;
this.message = "lastname reqd";
break;
}
else if (name.firstname == null)
{
Violated = true;
this.message = "firstname reqd";
break;
}
}
答案 4 :(得分:0)
在测试期间,我发现中断后的foreach循环进入循环渐变而不是循环。所以我把foreach更改为for和break,在这种情况下正常工作 - 在break程序流程退出循环之后。