using System; using System.Collections; using System.Collections.Generic; namespace MonoGenericIteratorTest { public class MyType { } public abstract class MyCollectionBase : Dictionary { public new virtual IEnumerator GetEnumerator () { return Values.GetEnumerator (); } } public class MyCollection : MyCollectionBase { } class MainClass { public static void Main (string[] args) { MyCollection myCollection = new MyCollection (); foreach (MyType item in myCollection) { Console.WriteLine ("Success."); } } } }