トップページに戻る
次の競技プログラミングのメモへ
001 C#での標準入力でListとIEnumerableでの速度比較
C#での標準入力でListとIEnumerableでの速度を比較します。
C#のソース
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static List<string> Test1()
{
return new List<string>(Enumerable.Range(1, 1234567).Select(X => X.ToString()));
}
static IEnumerable<string> Test2()
{
for (int I = 1; I <= 1234567; I++)
yield return I.ToString();
}
static void Main()
{
var sw1 = System.Diagnostics.Stopwatch.StartNew();
int LenSum1 = Test1().Sum(X => X.Length);
Console.WriteLine("Listでの経過時間");
Console.WriteLine(sw1.Elapsed);
Console.WriteLine();
var sw2 = System.Diagnostics.Stopwatch.StartNew();
int LenSum2 = Test2().Sum(X => X.Length);
Console.WriteLine("IEnumerableでの経過時間");
Console.WriteLine(sw2.Elapsed);
}
}
実行結果
Listでの経過時間
00:00:01.6031680
IEnumerableでの経過時間
00:00:01.0498563
解説
100万をこえるようだと差が出るようですね。