¿Cómo implemento IEnumerable <T>

Sé cómo implementar el IEnumerable no genérico, como esto:

using System;
using System.Collections;

namespace ConsoleApplication33
{
    class Program
    {
        static void Main(string[] args)
        {
            MyObjects myObjects = new MyObjects();
            myObjects[0] = new MyObject() { Foo = "Hello", Bar = 1 };
            myObjects[1] = new MyObject() { Foo = "World", Bar = 2 };

            foreach (MyObject x in myObjects)
            {
                Console.WriteLine(x.Foo);
                Console.WriteLine(x.Bar);
            }

            Console.ReadLine();
        }
    }

    class MyObject
    {
        public string Foo { get; set; }
        public int Bar { get; set; }
    }

    class MyObjects : IEnumerable
    {
        ArrayList mylist = new ArrayList();

        public MyObject this[int index]
        {
            get { return (MyObject)mylist[index]; }
            set { mylist.Insert(index, value); }
        }

        IEnumerator IEnumerable.GetEnumerator()
        {
            return mylist.GetEnumerator();
        }
    }
}

Sin embargo, también me doy cuenta de que IEnumerable tiene una versión genérica,IEnumerable<T>, pero no puedo averiguar cómo implementarlo.

Si agregousing System.Collections.Generic; a mis directivas de uso, y luego cambiar:

class MyObjects : IEnumerable

a:

class MyObjects : IEnumerable<MyObject>

Y luego haga clic derecho enIEnumerable<MyObject> y seleccioneImplement Interface => Implement Interface, Visual Studio amablemente agrega el siguiente bloque de código:

IEnumerator<MyObject> IEnumerable<MyObject>.GetEnumerator()
{
    throw new NotImplementedException();
}

Devolviendo el objeto IEnumerable no genérico desde elGetEnumerator(); El método no funciona esta vez, entonces, ¿qué pongo aquí? La CLI ahora ignora la implementación no genérica y se dirige directamente a la versión genérica cuando intenta enumerar a través de mi matriz durante el ciclo foreach.

Respuestas a la pregunta(6)

Su respuesta a la pregunta