for和foreach哪一個執行效率快,相信不少人都會說固然是foreach快啊,在我實驗以前我也是這麼認爲的,直到今天。費話很少說,下面是測試的結果,區分Debug和Release,數據採用int[],List<int>,Person[],List<Pserson>,DataTable:數組
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++數據結構
Debug下測試
初始化5千萬整型數據...
初始化整型數據完成。耗時:650操作系統
使用For遍歷10次整型數組,求平均時間...
For循環整型數組平均時間:202.9內存
使用Foreach遍歷10次整型數組,求平均時間...
Foreach循環整型數組平均時間:236.8效率
使用For遍歷10次整型List,求平均時間...
For循環整型List平均時間:360.9foreach
使用Foreach遍歷10次整型List,求平均時間...
Foreach循環整型List平均時間:269List
---------------------------------------循環
初始化5千萬Object數據...
初始化Object數據完成。耗時:193656遍歷
使用For遍歷10次Object數組,求平均時間...
For循環Object數組平均時間:930
使用Foreach遍歷10次Object數組,求平均時間...
Foreach循環Object數組平均時間:1130.9
使用For遍歷10次ObjectList,求平均時間...
For循環ObjectList平均時間:923.7
使用Foreach遍歷10次ObjectList,求平均時間...
Foreach循環ObjectList平均時間:1282.8
---------------------------------------
初始化2千萬DataTable數據...
初始化時間:115291
使用For遍歷10次DataTable,求平均時間...
For循環DataTable平均時間:12014.4
使用Foreach遍歷10次DataTable,求平均時間...
Foreach循環DataTable平均時間:3804.4
Release====================================================================================================================
初始化5千萬整型數據...
初始化整型數據完成。耗時:513
使用For遍歷10次整型數組,求平均時間...
For循環整型數組平均時間:41.1
使用Foreach遍歷10次整型數組,求平均時間...
Foreach循環整型數組平均時間:46.4
使用For遍歷10次整型List,求平均時間...
For循環整型List平均時間:168.9
使用Foreach遍歷10次整型List,求平均時間...
Foreach循環整型List平均時間:165.3
-------------------------------------------------------
初始化5千萬Object數據...
初始化Object數據完成。耗時:157782
使用For遍歷10次Object數組,求平均時間...
For循環Object數組平均時間:38
使用Foreach遍歷10次Object數組,求平均時間...
Foreach循環Object數組平均時間:490.2
使用For遍歷10次ObjectList,求平均時間...
For循環ObjectList平均時間:365.5
使用Foreach遍歷10次ObjectList,求平均時間...
Foreach循環ObjectList平均時間:726.6
----------------------------------------------------
初始化2千萬DataTable數據...
初始化時間:114483
使用For遍歷10次DataTable,求平均時間...
For循環DataTable平均時間:12059
使用Foreach遍歷10次DataTable,求平均時間...
Foreach循環DataTable平均時間:3891.8
++++++++++++++++++++++++++++++++++++++++++++++
由此能夠看出不一樣的數據結構,for和foreach執行效率是不同的,不能說哪一個必定快。有些數據結構差異不大,有些差異就比較大。
以上測試條件爲:
電腦型號 X64 兼容 臺式電腦操做系統 Windows 7 旗艦版 64位 ( DirectX 11 )處理器 AMD FX -8320 Eight-Core 八核主板 華碩 M5A78L-M LX3 PLUS ( AMD 780G/780V/790GX/890GX )內存 8 GB ( 金士頓 DDR3 1600MHz )