So:
interface Iterator<T> { boolean hasNext(); T next (); } interface Iterable<T> { Iterator<T> iterator(); } for (T x : ...) { ... }
Oder so:
public interface IEnumerator<T> : IEnumerator { bool MoveNext(); T Current { get; } } interface IEnumerable<out T> : IEnumerable { IEnumerator<T> GetEnumerator() } foreach (T x in ...) { ... }
(sieben Unterschiede ...)