Junior — Middle
Explain the principle of the yield function and how it is used in implementing iterators in Python.
sobes.tech AI
Answer from AI
In C#, the keyword yield is used to simplify the implementation of iterators. It allows methods to return elements one by one without creating the entire collection in memory at once.
When a method contains yield return, it becomes an iterator that returns the next element of the sequence each time it is called and preserves its state between calls.
Example:
public IEnumerable<int> GetNumbers()
{
yield return 1;
yield return 2;
yield return 3;
}
// Usage
foreach(var num in GetNumbers())
{
Console.WriteLine(num);
}
Here, the GetNumbers method returns numbers one at a time during each iteration. This is convenient for lazy sequence generation, saves memory, and simplifies the code compared to manual implementation of the IEnumerable and IEnumerator interfaces.