I wish the “enumerable” and “enumerator” terminology had been “iterable” and “iterator,” including
IIterator<T> interfaces. Admittedly, the double-I part is ugly, but it would have kept more lexical space between iterators and enumerations. It’s bizarrely long-winded to enumerate over an enumeration.
The enumerable interfaces are the nongeneric interface
System.Collections.IEnumerable and all instantiations of the generic interface
System.Collections.Generic.IEnumerable<T>. For the sake of brevity, in this chapter these interfaces are referenced as
An iterator produces a sequence of values, all of the same type. This ...