La forma en que lo explicaría es la siguiente: ForEach
es un método , no es una característica idioma. El constructo C# foreach
es una característica del lenguaje en el que están permitidos los otros constructos de lenguaje break
y continue
.
También señalaría (no tratando de juzgar, simplemente haciendo una observación) que este es un buen ejemplo de por qué algunos desarrolladores objetan el uso de un método ForEach
: realmente no ahorra escribir en este simple caso , requiere una redirección más de lo necesario, y no tiene toda la funcionalidad de foreach
de todos modos.
En mi opinión, el escenario principal en el que tiene sentido un método ForEach
es como una extensión en IEnumerable<T>
- para poner al final de una cadena de llamadas a métodos. Me parece (a mí) un poco extraño que lo hayan agregado al List<T>
.
Una extensión ParaCada bien escrita debería permitir que devuelva false si desea que se rompa. Pero no puedo asegurarlo ya que no sé de dónde sacaste tu foreach. Si lo escribió usted mismo, puede ser una buena opción. – Tesserex
Parece que desea la función TakeWhile http://msdn.microsoft.com/en-us/library/bb534804%28v=VS.90%29.aspx – Juliet
Encontré una mejor respuesta aquí: http://stackoverflow.com/questions/3145563/list-foreach-break –