Подтвердить что ты не робот

Выход из цикла 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";
    }
}

Всякий раз, когда нарушается true, я хочу немедленно выйти из цикла foreach. Как это сделать?

4b9b3361

Ответ 1

Используйте break ;


EDIT:

Не связанный с вашим вопросом, я вижу в вашем коде строку:

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

В этой строке вы берете логическое значение (name.firstname == null). Затем вы применяете к нему оператор !. Затем, если значение истинно, вы устанавливаете Violated to false; в противном случае - true. Итак, в основном, Violated устанавливается на то же значение, что и исходное выражение (name.firstname == null). Почему бы не использовать это, как в:

Violated = (name.firstname == null);

Ответ 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

Во время тестирования я обнаружил, что цикл foreach после перерыва перебирается в цикл, а не из цикла. Поэтому я изменил foreach на и в этом случае работал правильно - после того, как программный поток прерывается, выходит из цикла.