Come si esce da un ciclo foreach in C #?


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

Ogni volta che violato è vero, voglio uscire foreachimmediatamente dal giro. Come lo faccio?

Risposte:


212

Usa break.


Non correlato alla tua domanda, vedo nel tuo codice la riga:

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

In questa riga, prendi un valore booleano (name.firstname == null). Quindi, applica l' !operatore ad esso. Quindi, se il valore è true, imposti Violated su false; altrimenti a vero. Quindi, fondamentalmente, Violated è impostato sullo stesso valore dell'espressione originale (name.firstname == null). Perché non usarlo, come in:

Violated = (name.firstname == null);

Non mi piace vedere inutili se test e negazioni.
John Grabauskas



10

Guarda questo codice, può aiutarti a uscire velocemente dal giro!

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.