在C#中退出foreach循环

时间:2009-01-19 01:09:17

标签: c#

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循环。我该怎么做?

5 个答案:

答案 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程序流程退出循环之后。