using System; using System.Collections.Generic; using System.Diagnostics;
namespace ConsoleApp1 { class Program { static void Main(string[] args) { // テストデータ作成 var list = new List<int>(); var hash = new HashSet<int>(); var dict = new Dictionary<int, int>(); for (var i = 0; i < 10000000; i++) { list.Add(i); hash.Add(i); dict.Add(i, i); }
var sw = new Stopwatch(); decimal total = 0;
Console.WriteLine("繰り返し処理で値の合計を算出する。");
sw.Start(); foreach (var item in list) { total += item; } sw.Stop(); Console.WriteLine("List: {0}ms", sw.ElapsedMilliseconds);
total = 0;
sw.Start(); foreach (var item in hash) { total += item; } sw.Stop(); Console.WriteLine("HashSet: {0}ms", sw.ElapsedMilliseconds);
total = 0;
sw.Start(); foreach (var item in dict) { total += item.Value; } sw.Stop(); Console.WriteLine("Dictionary: {0}ms", sw.ElapsedMilliseconds);
total = 0;
sw.Start(); foreach (var item in dict.Keys) { total += item; } sw.Stop(); Console.WriteLine("Dictionary.Keys: {0}ms", sw.ElapsedMilliseconds);
total = 0;
sw.Start(); foreach (var item in dict.Values) { total += item; } sw.Stop(); Console.WriteLine("Dictionary.Values: {0}ms", sw.ElapsedMilliseconds); } } }