¿Foreach evalúa la matriz en cada iteración?

Quiero crear unforeach que se salta el primer elemento. He visto en otros lugares que la forma más fácil de hacer esto es usarmyCollection.Skip(1), pero tengo una pregunta:

La documentación de MSDN en.Skip() describe que "Omite un número específico de elementos en una secuencia y luego devuelve los elementos restantes". ¿Significa esto que una llamada a

foreach(object i in myCollection.Skip(1))
{ ... }

¿Tendría que realizar el programa?.Skip(1) cada vez que elforeach itera? O haceforeach (algo así como unswitch) ¿No requiere múltiples evaluaciones de la matriz?

¿Sería más eficiente crear un maniquí?var _dummy = myCollection.Skip(1) e iterar sobre esto en su lugar?

Respuestas a la pregunta(5)

Su respuesta a la pregunta