Выход из цикла 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
. Как это сделать?
Ответы
Ответ 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 на и в этом случае работал правильно - после того, как программный поток прерывается, выходит из цикла.