Por que não posso usar o enumerador de uma matriz, em vez de implementá-lo eu mesmo?

Eu tenho algum código como este:

public class EffectValues : IEnumerable<object>
{
    public object [ ] Values { get; set; }

    public IEnumerator<object> GetEnumerator ( )
    {
        return this.Values.GetEnumerator ( );
    }

    System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ( )
    {
        return this.GetEnumerator ( );
    }
}

Mas o compilador reclama dizendo:

"Não é possível converter implicitamente o tipo 'System.Collections.IEnumerator' para 'System.Collections.Generic.IEnumerator'. Existe uma conversão explícita (você está perdendo uma conversão?)"

Eu pensei que o tipo Array implementou ambas as interfaces IEnumerable, não é? Porque eu posso usar os recursos do Linq diretamente na instância Values.

questionAnswers(2)

yourAnswerToTheQuestion