[完全版] 究極のC#プログラミング ~新スタイルによる実践的コーディング のlist2.3をやってみました。
ListとLinkedListのそれぞれで1000回リンクに挿入するのを10回行うコードです。
1つめがList、2つめがLinkedListです。LinledList、確かに速い。
環境は、CoreDuo 1.2GHz、Memory2GB、Vista SP2。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace list2._3
{
class Program
{
static void Main(string[] args)
{
int loop1 = 100;
int loop2 = 10000;
// Listクラスの利用
DateTime start1 = DateTime.Now;
for (int counter1 = 0; counter1 < loop1; counter1++)
{
var list1 = new List<string>();
list1.Add("First");
list1.Add("Last");
for (int counter2 = 0; counter2 < loop2; counter2++)
{
list1.Insert(1, "Inserted");
}
}
var end1 = DateTime.Now;
Console.WriteLine(end1 - start1);
// LinkedListクラスの利用
var start2 = DateTime.Now;
for (int counter3 = 0; counter3 < loop1; counter3++)
{
var list2 = new LinkedList<string>();
list2.AddFirst("First");
list2.AddLast("Last");
for (int counter4 = 4; counter4 < loop2; counter4++)
{
list2.AddAfter(list2.First, "Inserted");
}
}
var end2 = DateTime.Now;
Console.WriteLine(end2 - start2);
}
}
}
実現している機能がことなるので、単純比較はできないけれども。