【问题标题】:How do I exit a foreach loop in C#?如何在 C# 中退出 foreach 循环?
【发布时间】:2010-10-02 03:50:15
【问题描述】:
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 循环。我该怎么做?

【问题讨论】:

    标签: c# foreach


    【解决方案1】:

    使用break


    与您的问题无关,我在您的代码中看到以下行:

    Violated = !(name.firstname == null) ? false : true;
    

    在这一行中,您采用布尔值 (name.firstname == null)。然后,将! 运算符应用于它。然后,如果值为 true,则将 Violated 设置为 false;否则为真。所以基本上,Violated 被设置为与原始表达式(name.firstname == null) 相同的值。为什么不使用它,例如:

    Violated = (name.firstname == null);
    

    【讨论】:

    • 我不喜欢看到不必要的 if 测试和否定。
    【解决方案2】:

    使用break 关键字。

    【讨论】:

      【解决方案3】:

      只要使用语句:

      break;
      

      【讨论】:

        【解决方案4】:

        看看这段代码,它可以帮助你快速跳出循环!

        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;
           }
        }
        

        【讨论】:

          【解决方案5】:

          在测试过程中,我发现 break 后的 foreach 循环进入循环而不是循环外。因此,我将 foreach 更改为 for 并在这种情况下正常工作 - 在 break 程序流退出循环后。

          【讨论】:

          猜你喜欢
          • 2012-10-14
          • 2013-08-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-08-03
          相关资源
          最近更新 更多