Pourquoi pensez-vous que Microsoft veut que l'on passe par IEnumerable pour arriver à IEnumerator ? La présence ou l'absence d'un cast valide vers IEnumerator pour un type donné n'est-elle pas suffisante pour déterminer si le type est énumérable ou non ?
Par exemple, qu'est-ce qui ne va pas avec ce qui suit ?
class MyClass : IEnumerator
{
...
}
MyClass myObj = new MyClass();
if(myObj as IEnumerator != null)
{
Console.WriteLine("myObj is enumerable");
}
else
{
Console.WriteLine("myObj doesn't support enumeration");
}