que loop getenumerator for array c#

loop - ienumerable c# foreach



Saliendo del bucle foreach en C# (5)

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

Siempre que se infrinja la verdad, quiero salir inmediatamente del ciclo foreach . ¿Cómo lo hago?


Solo usa la declaración:

break;


Use break ;

EDITAR:

Sin relación a su pregunta, veo en su código la línea:

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

En esta línea, tomas un valor booleano (name.firstname == null) . Entonces, ¡aplica el ! operador a ella. Entonces, si el valor es verdadero, establece Violado en falso; de lo contrario a verdadero. Así que, básicamente, Violated se establece en el mismo valor que la expresión original (name.firstname == null) . ¿Por qué no usar eso, como en:

Violated = (name.firstname == null);


Use la palabra clave break .


Mira este código, ¡puede ayudarte a salir del ciclo rápido!

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


Durante las pruebas, descubrí que el bucle foreach después de la pausa va al beging de bucle y no al bucle. Así que cambié foreach por for break en este caso, funcionó correctamente, después de que el flujo de programa de interrupción se salga del ciclo.