var fillData = new List<int>();
for (var i = 0; i < 100000; i++)
{
fillData.Add(i);
}
var stopwatch1 = new Stopwatch();
stopwatch1.Start();
var autoFill = new List<int>();
autoFill.AddRange(fillData);
stopwatch1.Stop();
var stopwatch2 = new Stopwatch();
stopwatch2.Start();
var manualFill = new List<int>();
foreach (var i in fillData)
{
manualFill.Add(i);
}
stopwatch2.Stop();
私はstopwach1
とstopwach2
から結果を取るときは、stopwatch1
がstopwatch2
よりも常に低い値を持っています。それはaddrange
が常にforeach
よりも高速であることを意味します。 誰にも分かりますか?追加された項目のforeachループを使用するよりも、AddRangeの方が速いのはなぜですか?
AddRange
私はいつも 'reflector'コードで回答をupvoteします。 ** + 1 ** – gdoron