In dem von Ihnen angeführten Beispiel ist es definitiv besser, die foreach
Schleife stattdessen eine for
Schleife.
Die Norm foreach
Konstrukt kann schneller sein (1,5 Zyklen pro Schritt) als eine einfache for-loop
(2 Zyklen pro Schritt), es sei denn, die Schleife wurde abgerollt (1,0 Zyklen pro Schritt).
Für alltäglichen Code ist die Leistung also kein Grund, die komplexere for
, while
o do-while
Konstrukte.
Sehen Sie sich diesen Link an: http://www.codeproject.com/Articles/146797/Fast-and-Less-Fast-Loops-in-C
Method List<int> int[] Ilist<int> onList<Int> Ilist<int> on int[]
Time (ms) 23,80 17,56 92,33 86,90
Transfer rate (GB/s) 2,82 3,82 0,73 0,77
% Max 25,2% 34,1% 6,5% 6,9%
Cycles / read 3,97 2,93 15,41 14,50
Reads / iteration 16 16 16 16
Cycles / iteration 63,5 46,9 246,5 232,0