プログラマーな日々

プログラマーをやっています。好きなツール:TaskChute Cloud・WorkFlowy、好きな言語:C#、好きなサービス:Backlog、好きなAWS:AWS Lambda。

【.NET】IEnumerable<T>.ToArrayとToListの速度を比べてみた

IEnumerable.ToArrayとToListの速度を比べてみました。

ソースコード

using System;
using System.Diagnostics;
using System.Linq;

namespace ToArrayToListTest {
    class Program {
        static void Main(string[] args) {

            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();

            Enumerable.Range(0, 100000000).ToArray();

            stopwatch.Stop();
            Console.WriteLine(string.Format("ToArray経過時間:{0}ミリ秒", stopwatch.ElapsedMilliseconds));

            stopwatch.Restart();

            Enumerable.Range(0, 100000000).ToList();

            stopwatch.Stop();
            Console.WriteLine(string.Format("ToList経過時間:{0}ミリ秒", stopwatch.ElapsedMilliseconds));

            Console.ReadKey();
        }
    }
}

結果

1回目

ToArray経過時間:1165ミリ秒
ToList経過時間:1219ミリ秒

2回目

ToArray経過時間:1143ミリ秒
ToList経過時間:1319ミリ秒

3回目

ToArray経過時間:1120ミリ秒
ToList経過時間:1210ミリ秒

4回目

ToArray経過時間:1137ミリ秒
ToList経過時間:1218ミリ秒

5回目

ToArray経過時間:1128ミリ秒
ToList経過時間:1209ミリ秒

ToArrayの方が若干速いですが、気にするほどの差はありませんでした。