int count = 0; Random r = new Random(); List<byte> list = new List<byte>(); Console.WriteLine("開始for循環添加:"); int ticks = Environment.TickCount; for (int i = 0; i < 10000000; i++) { list.Add((byte)r.Next(-1, 255)); } int temp = Math.Abs(Environment.TickCount - ticks); Console.WriteLine("經過的時間為:"+temp); Console.WriteLine("開始foreach查詢:"); ticks = Environment.TickCount; count = 0; foreach (byte b in list) { if (b == 61) count += 1; } temp = Math.Abs(Environment.TickCount - ticks); Console.WriteLine("經過的時間為:" + temp); Console.WriteLine("開始for查詢:"); ticks = Environment.TickCount; count = 0; for (int i = 0; i < list.Count; i++) { if (list[i] == 61) count += 1; } temp = Math.Abs(Environment.TickCount - ticks); Console.WriteLine("經過的時間為:" + temp); Console.WriteLine("開始linq查詢:"); ticks = Environment.TickCount; count = 0; foreach (byte t in list.Where(t => t == 61)) { count += 1; } temp = Math.Abs(Environment.TickCount - ticks); Console.WriteLine("經過的時間為:" + temp); Console.ReadLine();
運行結果
運行了十幾次基本結果都一樣,不知道能不能下定論了。。。。。