 <p><code>IEnumerable&lt;T&gt;</code> extends <code>IEnumerable</code>, so if you're implementing <code>IEnumerable&lt;T&gt;</code>, you are automatically also implementing <code>IEnumerable</code>.</p> <p><code>IEnumerable</code> exists for one reason: because C# 1.0 did not have generics. Because of that, we now have to implement <code>IEnumerable</code> all the time, which is just kind of annoying.</p> <p>Your implementation is correct: when implementing IEnumerable, just have it call the generic version.</p> <pre><code>IEnumerator IEnumerable.GetEnumerator() { return this.GetEnumerator(); } </code></pre>