Anular IEnumerable <T> Donde

He escrito una clase que implementa IEnumerable:

public class MyEnumerable : IEnumerable<MyClass>
{ 
    IEnumerator IEnumerable.GetEnumerator()
    {
        return this.GetEnumerator();
    }
    public IEnumerator<MyClass> GetEnumerator()
    {
        //Enumerate
    }
}

Me gustaría "anular" el método Where. Lo que quiero hacer es:

MyEnumerable myEnumerable = new MyEnumerable();
MyEnumerable myEnumerable2 = myEnumerable.Where(/*some predicate*/);

Por el momento, esto no es posible porque myEnumerable.Where () devuelve un IEnumerable. Lo que quiero es que myEnumerable.Where () devuelva un MyEnumerable.

¿Es eso posible hacer esto?

Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta