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();
Когда я принимаю  4 результаты от stopwach1 и stopwach2, stopwatch1 всегда имеет меньшее значение, чем stopwatch2. Это означает, что addrange всегда быстрее, чем foreach.
Кто-нибудь знает, почему?