Comment sortir d'une liste générique ForEach avec délégué?
Question
Comment puis-je quitter une liste générique ForEach avec un délégué? Pause ou retour ne fonctionne pas.
Exemple:
Peoples.ForEach(delegate(People someone)
{
if(someone.Name == "foo")
???? What to do to exit immediatly ?
});
La solution
Vous ne pouvez pas y parvenir avec ForEach .
Autres conseils
écrivez-le simplement comme ceci
foreach(People someone in Peoples)
{
if(someone.Name == "foo") break;
// rest of code below for != "foo"...
}
sauter juste foo et toujours faire l'action pour tout le monde que vous pourriez faire
if(someone.Name == "foo") continue;
Vous pouvez faire quelque chose comme:
Peoples.TakeWhile(p=> p.Name != "foo")
.ToList().ForEach(p => Console.WriteLine(p.Name));
mais c'est exagéré et mauvais en termes de performances ...
Utilisez simplement une simple boucle foreach
.
Bien que cela ne soit pas recommandé, vous pouvez générer une exception depuis ForEach ()
lorsque la condition est remplie.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow