c# exit generic ForEach, dass die Verwendung von lambda

Weiß jemand, ob es möglich ist, zu beenden eine generische ForEach verwendet, die lambda? z.B.

someList.ForEach(sl =>
  {
    if (sl.ToString() == "foo")
        break;

    //continue processing sl here
    //some processing code
  }
);

Dieser code sich nicht kompilieren. Ich weiß, ich könnte mit einem regulären foreach-aber für die Konsistenz, die ich verwenden möchten lambda.

Vielen Dank.

  • Gibt es einen Grund, MUSS es auf diese Weise getan? Ich war schon immer vorsichtig break;. Außerhalb einer switch-case, ich habe nie gesehen, wie Sie benötigen.
  • Ich benutze break und continue viel. Manchmal wollen Sie nicht nur die Schleife, um auszuführen alles, was er durch war, und break/continue vereinfacht den code.
  • Gibt es irgendeinen Grund, warum Sie lieber einen Lambda-Ausdruck dafür?
  • Ich bin neugierig, haben Sie tatsächlich gefunden-code, wo der EINZIGE Weg, um zu verhindern, dass der rest des Körpers von der Ausführung war, mit Pause/fortsetzen? Nichts anderes hätte Sie erzielt die gleiche Wirkung?
  • In Bezug auf Stil, if(condition) continue; ist IMO sauberer als if(!condition) { loop body }
  • Natürlich ist es immer möglich, code zu schreiben, ohne break oder continue. Aber das kann, desto Ausführlicher, weniger comprehesible, und weniger effizienten code. break und continue wurden so konzipiert, dass Sie schreiben können, prägnanten, effizienten code in ungewöhnlichen Situationen.

InformationsquelleAutor Peanut | 2010-02-12
Schreibe einen Kommentar