(31)Know your loopsoop
招數31:測試
認識你的循環spa
for is the fastest way of iterating over a collection, foreach is a little slower, and LINQ queries are slowest.
for是遍歷集合最快的方法,foreach略慢一些,LINQ查詢最慢。pwa
測試代碼:code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Diagnostics; namespace ConsoleApplicationExample { class Program { static void Main(string[] args) { Console.WriteLine("code test:"); Stopwatch watch = new Stopwatch(); // for loop watch.Start(); for (int i = 0; i < 100000; i++) { ; } watch.Stop(); Console.WriteLine("for loop:"); Console.WriteLine(watch.Elapsed.TotalMilliseconds); watch = new Stopwatch(); // while loop watch.Start(); int loop = 0; while (loop < 100000) { loop++; } watch.Stop(); Console.WriteLine("while loop:"); Console.WriteLine(watch.Elapsed.TotalMilliseconds); watch = new Stopwatch(); // foreach loop watch.Start(); int[] array = new int[100000]; foreach (int i in array) { ; } watch.Stop(); Console.WriteLine("foreach loop:"); Console.WriteLine(watch.Elapsed.TotalMilliseconds); watch = new Stopwatch(); // foreach loop watch.Start(); Array.ForEach(array, (i) => { ; }); watch.Stop(); Console.WriteLine("lamda loop:"); Console.WriteLine(watch.Elapsed.TotalMilliseconds); Console.ReadLine(); } } }
測試結果:blog
code test:
for loop:
0.2467
while loop:
0.2666
foreach loop:
0.4867
lamda loop:
0.8728