摘自: more effective c#
9. 對數組跟集合使用foreach
循環數組或集合有三種方式:
int[] foo = new int[100];
第一種:
- foreach(int i in foo)
- {
- // do somethings.
- }
第二種:
- for (int index = 0; index < foo.Length; index++)
第三種:
- int len = foo.Length;
- for (int index = 0; index < len; index++)
對于C或C++,第三種循環效率最佳。但是在C#中是最差的,因為在通路每一個實際的集合時,運作時確定對每個集合的邊界做檢測。而将集合的大小指派給一個變量,這使得每次進行for循環第二個條件參數總需要對邊界進行兩次檢測。并使得JIT編譯器在生成代碼的時候做了更多的事情。??????????????????