(31)Know your loops

招数31:

认识你的循环

for is the fastest way of iterating over a collection, foreach is a little slower, and LINQ queries are slowest.
for是遍历集合最快的方法,foreach略慢一些,LINQ查询最慢。

测试代码:

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();
        }
    }
}

 

测试结果:

code test:
for loop:
0.2467
while loop:
0.2666
foreach loop:
0.4867
lamda loop:
0.8728

 

相关文章:

  • 2022-01-08
  • 2022-02-14
  • 2021-12-05
  • 2021-08-17
  • 2021-05-27
  • 2022-01-24
  • 2022-02-23
  • 2021-11-07
猜你喜欢
  • 2022-01-10
  • 2021-07-22
  • 2022-01-27
  • 2022-02-16
  • 2021-06-28
  • 2021-11-04
  • 2021-06-06
相关资源
相似解决方案