Often I have to code a loop that needs a special case for the first item, the code never seems as clear as it should ideally be.
Short of a redesign of the C# language,
I use the first variable method all the time and it seems totally normal to me. If you like that better you can use LINQ First() and Skip(1)
first
First()
Skip(1)
var firstItem = yyy.First(); // do the whatever on first item foreach (var y in yyy.Skip(1)) { // process the rest of the collection }