To iterate a yield return
in C#, we need to use an iterator block, which generates an enumerator that can be iterated over using a foreach
loop or other enumeration techniques.
Here's an example:
main.cs209 chars14 lines
In the above example, GetNumbers()
method returns an IEnumerable<int>
object, which internally uses the yield return
statement to generate a sequence of integers.
The foreach
loop iterates over the sequence by calling the enumerator's MoveNext()
method and fetching the current element from the Current
property.
The yield return
statement pauses the execution of the method and returns the current value to the caller. Then, when the next value is requested (usually by calling MoveNext()
on the iterator), the method resumes execution from where it left off and generates the next value.
This allows us to lazily generate a sequence of values on-demand, without having to generate all of them up-front.
gistlibby LogSnag