In C # / VB.NET / .NET, quale ciclo viene eseguito più velocemente for
oforeach
?
Da quando ho letto che un for
loop funziona molto più velocemente di un foreach
loop molto tempo fa, ho pensato che fosse vero per tutte le raccolte, raccolte generiche, tutti gli array, ecc.
Ho setacciato Google e ho trovato alcuni articoli, ma la maggior parte di essi sono inconcludenti (leggi i commenti sugli articoli) e aperti.
Quale sarebbe l'ideale è avere ogni scenario elencato e la soluzione migliore per lo stesso.
Ad esempio (solo un esempio di come dovrebbe essere):
- per iterare un array di oltre 1000 stringhe -
for
è meglio diforeach
- per iterare su
IList
stringhe (non generiche) -foreach
è meglio difor
Alcuni riferimenti trovati sul web per lo stesso:
- Grande vecchio articolo originale di Emmanuel Schanzer
- CodeProject FOREACH vs. PER
- Blog - To to
foreach
not notforeach
, questa è la domanda - Forum ASP.NET - NET 1.1 C #
for
vsforeach
[Modificare]
A parte l'aspetto della leggibilità, sono davvero interessato a fatti e cifre. Esistono applicazioni in cui conta l'ultimo miglio dell'ottimizzazione delle prestazioni.
foreach
anziché for
in C #. Se vedi qui delle risposte che non hanno alcun senso, ecco perché. Dai la colpa al moderatore, non alle risposte sfortunate.