En C # / VB.NET / .NET, ¿qué ciclo se ejecuta más rápido for
o foreach
?
Desde que leí que un for
bucle funciona más rápido que un foreach
bucle hace mucho tiempo, supuse que era cierto para todas las colecciones, colecciones genéricas, todas las matrices, etc.
Recorrí Google y encontré algunos artículos, pero la mayoría de ellos no son concluyentes (lea los comentarios sobre los artículos) y están abiertos.
Lo ideal sería tener cada escenario en la lista y la mejor solución para el mismo.
Por ejemplo (solo un ejemplo de cómo debería ser):
- para iterar una matriz de más de 1000 cadenas,
for
es mejor queforeach
- para iterar sobre
IList
cadenas (no genéricas):foreach
es mejor quefor
Algunas referencias encontradas en la web para lo mismo:
- Gran artículo original de Emmanuel Schanzer
- CodeProject FOREACH Vs. PARA
- Blog: para
foreach
o noforeach
, esa es la pregunta - Foro ASP.NET - NET 1.1 C #
for
vsforeach
[Editar]
Además del aspecto de legibilidad, estoy realmente interesado en hechos y cifras. Hay aplicaciones en las que importa la última milla de optimización de rendimiento.
foreach
lugar de for
en C #. Si ve aquí respuestas que no tienen ningún sentido, es por eso. Culpe al moderador, no a las respuestas desafortunadas.