177 votes

Comment sortir d'une boucle foreach en C# ?

Comment puis-je sortir d'une foreach boucle en C# si l'un des éléments répond à l'exigence ?

Par exemple :

foreach(string s in sList){
      if(s.equals("ok")){
       //jump foreach loop and return true
     }
    //no item equals to "ok" then return false
}

313voto

mbillard Points 15829
foreach (string s in sList)
{
    if (s.equals("ok"))
        return true;
}

return false;

Ou bien, si vous devez faire d'autres choses après avoir trouvé l'objet :

bool found = false;
foreach (string s in sList)
{
    if (s.equals("ok"))
    {
        found = true;
        break; // get out of the loop
    }
}

// do stuff

return found;

117voto

Francis Gilbert Points 1628

Utilisez break; et ceci va sortir de la boucle foreach

61voto

spender Points 51307

Vous pourriez éviter les boucles explicites en empruntant la voie LINQ :

sList.Any(s => s.Equals("ok"))

37voto

Cody Points 1970
foreach (var item in listOfItems) {
  if (condition_is_met)
    // Any processing you may need to complete here...
    break; // return true; also works if you're looking to
           // completely exit this function.
}

Ça devrait faire l'affaire. L'instruction break mettra simplement fin à l'exécution de la boucle, tandis que l'instruction return mettra évidemment fin à la fonction entière. D'après votre question, vous devriez utiliser l'instruction return true ;.

7voto

vrxacs Points 173

Vous pouvez utiliser break qui saute hors de la boucle la plus proche, ou vous pouvez juste directement return true

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X