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,
My solution:
foreach (var x in yyy.Select((o, i) => new { Object = o, Index = i } ) { if (x.Index == 0) { // First item logic } else { // Rest of items } }