using System; using System.Collections; using System.Collections.Generic; public class BaseCollection : IEnumerable { protected List items = new List (); IEnumerator IEnumerable.GetEnumerator () { return items.GetEnumerator (); } IEnumerator IEnumerable.GetEnumerator () { return items.GetEnumerator (); } } public class BaseIntList : BaseCollection { } public class IntList : BaseIntList { } class X { public static void Main () { IntList list = new IntList (); foreach (int i in list) { Console.WriteLine (i); } } }