1. 程式人生 > >.net中for與foreach的比較及使用。

.net中for與foreach的比較及使用。

當for與陣列用在一起的時候,如:    

for(int i=0 ;i<array.count;i++) {   }  

.net的編譯器會有一個自動的優化,就是去獲取該陣列的一個總值array.count,並存放在記憶體中,無論你的陣列是多大, array.count在loop的時候不用反覆獲取array的總數。重點是這個過程並不是很快,可能是有一定的安全性操作,畢竟這個放在記憶體中的值還要及時的清除掉。當陣列總數很小的時候,這個獲取總數的操作佔遍歷一遍陣列的比重是比較大的。 

 foreach是ienumerator介面每遍歷一次都要有兩個步驟獲取釋放,這兩個步驟都是很快的但是當量很大的時候其影響就不可忽視了。

因此很簡單的說,當陣列總量較大的時候一般使用for,較小的時候使用foreach。較大較小的參比值大概是8萬~10萬