如何退出C#中的foreach循环?
只要违例为true,我就想立即退出如何退出C#中的foreach循环?,c#,foreach,C#,Foreach,只要违例为true,我就想立即退出foreach循环。怎么做?使用 与你的问题无关,我在你的代码中看到: foreach (var name in parent.names) { if name.lastname == null) { Violated = true; this.message = "lastname reqd"; } if (!Violated) { Violated = !(name.
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";
}
}
在这一行中,您获取一个布尔值(name.firstname==null)
。然后,应用代码>操作员到它。然后,如果该值为true,则将违抗设置为false;否则就是真的。因此,基本上,违例设置为与原始表达式(name.firstname==null)
相同的值。为什么不使用它,例如:
Violated = !(name.firstname == null) ? false : true;
使用关键字。只需使用以下语句:
Violated = (name.firstname == null);
看看这段代码,它可以帮助您快速脱离循环
break;
在测试期间,我发现foreach循环在中断后进入循环beging,而不是退出循环。因此,我将foreach改为for和break,在这种情况下,正确工作-中断后程序流退出循环。我不希望看到不必要的测试和否定。MS文档说,break
退出,在我的代码中,continue
进入下一个迭代。
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;
}
}