using System; using System.Linq; using System.Collections.Generic; public class Test { static int counter = 0; public static IEnumerable CountedEnum(IEnumerable ee) { foreach (var e in ee) { counter++; yield return e; } } public static void Main() { var Numbers= CountedEnum(new int[5]{5,2,3,4,5}); var query = from a in Numbers where a== Numbers.Max (n => n) select a; foreach (var element in query) Console.WriteLine (element); Console.WriteLine("Count: {0}", counter); } }