using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Collections;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { CountingEnumerable counter = new CountingEnumerable(); foreach (int x in counter) { Console.WriteLine(x); } Console.ReadKey(); } } class CountingEnumerable : IEnumerable { public IEnumerator GetEnumerator() { return new CountingEnumerator(); } System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return GetEnumerator(); } } class CountingEnumerator : IEnumerator { int current = -1; public int Current { get { return current; } } object System.Collections.IEnumerator.Current { get { return Current; } } public bool MoveNext() { current++; return current < 10; } public void Reset() { current = -1; } public void Dispose() { } }}