В .NET, используя «Foreach» для итерации экземпляра IEnumerable создаст копию? Так что же мне лучше использовать «for» вместо «foreach»?

Как Вы изучали, когда использовать если оператор?

я уподобляю его что, потому что это - большая конструкция, что необходимо знать входы и выходы того, прежде чем можно будет использовать его эффективно. Если оператор решает класс ветвления необходимости задач. Шаблон "мост" решает класс проблем. Я действительно не просматриваю их никто по-другому.

21
задан Cui Pengfei 崔鹏飞 14 April 2011 в 13:34
поделиться

1 ответ

Вы не сбрасываете «секундомер» после теста «для» , поэтому время, затраченное на тест «для», добавляется к последующему тесту «foreach». Кроме того, как правильно указано, вы должны выполнить задание внутри 'for', чтобы имитировать точное поведение foreach.

sw.Start();

foreach (var item in test)
{

}

sw.Stop();
Console.WriteLine("foreach " + sw.ElapsedMilliseconds);
sw.Restart();

for (int j = 0; j < test.Count; j++)
{
    T temp = test[j];
}

sw.Stop();
Console.WriteLine("for " + sw.ElapsedMilliseconds);
sw.Reset(); // -- This bit is missing!
3
ответ дан 29 November 2019 в 20:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: