using System.Collections.Generic;
public static void Main()
Test(new List<int>(Enumerable.Range(0, 10)));
Test(new Queue<int>(Enumerable.Range(0, 10)));
Test(Enumerable.Range(0, 10));
static void Test(IEnumerable<int> source)
int result = source.Select(x => { iterations++; return x; }).ElementAt(5);
Console.WriteLine($"{source}, result: {result}, Iterations: {iterations}");