Оценивает ли foreach массив на каждой итерации?
Я хочу создатьforeach
который пропускает первый пункт. Я видел в другом месте, что самый простой способ сделать это - использоватьmyCollection.Skip(1)
, но у меня есть вопрос:
Документация MSDN по.Skip()
описывает, что он «обходит указанное количество элементов в последовательности, а затем возвращает оставшиеся элементы». Означает ли это, что вызов
foreach(object i in myCollection.Skip(1))
{ ... }
Должна ли программа выполняться.Skip(1)
каждый разforeach
итерация? Или делаетforeach
(что-то вродеswitch
) не требует многократной оценки массива?
Будет ли эффективнее создать манекен?var _dummy = myCollection.Skip(1)
и повторить это вместо этого?