This has got to be one of the best examples of the C# iterator feature put to good use that I have seen.