C# 2 and VB.Net 8 introduced a new feature called iterators, which were designed to make it easier to return enumerables and enumerators.

However, iterators are actually a limited form of coroutines, and can be used to do many useful things that have nothing to do with collections of objects.

What non-standard uses of iterators have you seen in real code?

Edit
Report