Frage

Wie beende ich eine generische Liste FürJeden mit einem Delegierten? Brechen oder Rückgabe nicht funktioniert.

Beispiel:

        Peoples.ForEach(delegate(People someone)
        {
            if(someone.Name == "foo")
               ???? What to do to exit immediatly ?
        });
War es hilfreich?

Lösung

Sie können dies nicht erreichen mit FürJeden .

Andere Tipps

es nur schreiben, wie diese

foreach(People someone in Peoples)
{
    if(someone.Name == "foo") break;
    // rest of code below for != "foo"...
}

nur foo überspringen und immer noch die Aktion für alle anderen Sie tun können,

if(someone.Name == "foo") continue;

Sie etwas tun könnten, wie:

        Peoples.TakeWhile(p=> p.Name != "foo")
            .ToList().ForEach(p => Console.WriteLine(p.Name));

, aber das ist übertrieben und schlecht in Bezug auf Leistung ...

Nur eine einfache foreach Schleife verwenden.

Obwohl es nicht empfohlen, dass Sie eine Ausnahme aus dem Innern der ForEach() werfen können, wenn die Bedingung erfüllt ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top