En C # / VB.NET / .NET, quelle boucle s'exécute plus rapidement, for
ou foreach
?
Depuis que j'ai lu qu'une for
boucle fonctionne plus rapidement qu'une foreach
boucle il y a longtemps, j'ai supposé qu'elle était vraie pour toutes les collections, les collections génériques, tous les tableaux, etc.
J'ai parcouru Google et trouvé quelques articles, mais la plupart d'entre eux ne sont pas concluants (lire les commentaires sur les articles) et ouverts.
L'idéal serait de répertorier chaque scénario et la meilleure solution pour le même.
Par exemple (juste un exemple de comment cela devrait être):
- pour itérer un tableau de plus de 1000 chaînes -
for
est mieux queforeach
- pour itérer sur
IList
des chaînes (non génériques) -foreach
est mieux quefor
Quelques références trouvées sur le web pour les mêmes:
- Grand ancien article original d'Emmanuel Schanzer
- CodeProject FOREACH Vs. POUR
- Blog - To
foreach
to not toforeach
, telle est la question - Forum ASP.NET - NET 1.1 C #
for
vsforeach
[Éditer]
Hormis l'aspect lisibilité de celui-ci, je suis vraiment intéressé par les faits et les chiffres. Il existe des applications où le dernier kilomètre d'optimisation des performances est important.
foreach
au lieu de for
C #. Si vous voyez ici des réponses qui n'ont aucun sens, c'est pourquoi. Blâmez le modérateur, pas les réponses malheureuses.