Some explorations of the workings of the Yield keyword in C#