在C#中退出foreach循环
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
循环。 我该怎么做?
使用break
;
编辑:
与您的问题无关,我在您的代码中看到以下行:
Violated = !(name.firstname == null) ? false : true;
在这一行中,你取一个布尔值(name.firstname == null)
。 然后,你应用!
运营商。 然后,如果值为true,则将Violated设置为false; 否则为真。 所以基本上,Violated被设置为与原始expression式(name.firstname == null)
相同的值。 为什么不使用,如在:
Violated = (name.firstname == null);
只要使用声明:
break;
使用break
关键字。
看看这个代码,它可以帮助你快速退出循环!
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; } }
在testing期间,我发现中断后的foreach循环进入循环beging,而不是循环。 所以我把foreach改成了for,并在这种情况下正常工作 – 在break程序stream程退出循环之后。