在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程退出循环之后。