eeds to look at one result at a time, and will yield it without keeping a reference to it. This means you can apply it to an infinitely long sequence (for example a sequence of random numbers) </li>    <li>It will iterate over the input sequence exactly once each time you iterate over the output sequence </li>    <li>Disposing of an iterator over the output sequence will dispose of the corresponding iterator over the input sequence. (In case you didn&#39;t realise, the foreach statement in C# uses a try/fin