Iterators can be very useful sometimes. For example, you may need to process every second item in a collection. With the yield keyword it's easy to create a generic iterator that does this like so: class CustomIterator { public static IEnumerable<T> Read More...