What is yield keyword used for?
๐ก Concept: Yield Keyword in C#
The yield keyword enables iterator methods that produce elements one at a time, supporting lazy evaluation.
๐ Quick Intro
Using yield, a method can return each element on-demand without creating a complete collection first.
๐ง Analogy
Like handing out candies one by one instead of giving the whole bag at once.
๐ง Technical Explanation
- Yield return provides an element to the enumerator.
- Yield break terminates the iteration early.
- Methods using yield return automatically implement IEnumerable or IEnumerator.
- Supports deferred execution and better memory usage.
- Introduced in C# 2.0.
๐ฏ Use Cases
- โ Implementing custom iterators.
- โ Working with large or infinite sequences lazily.
- โ Efficient data streaming.
- โ Avoiding creating full collections in memory.
๐ป Code Example
public IEnumerable<int> GetNumbers() {
for (int i = 0; i < 5; i++) {
yield return i;
}
}

โ Interview Q&A
Q1: What does the yield keyword do?
A: Enables lazy iteration by returning elements one at a time.
Q2: When was yield introduced?
A: C# 2.0.
Q3: What is yield return?
A: Returns the next element in iteration.
Q4: What is yield break?
A: Ends the iteration.
Q5: Can yield be used in async methods?
A: No.
Q6: Does yield improve performance?
A: Yes, through deferred execution.
Q7: Can yield be used with foreach?
A: Yes.
Q8: Is yield syntactic sugar?
A: Yes.
Q9: Can yield break be omitted?
A: Yes, iteration ends at method end.
Q10: Does yield affect state machine generation?
A: Yes, compiler generates one.
๐ MCQs
Q1. What does the yield keyword do?
- Returns all elements
- Enables lazy iteration
- Blocks execution
- None
Q2. When was yield introduced?
- C# 1.0
- C# 2.0
- C# 3.0
- C# 4.0
Q3. What is yield return?
- Ends iteration
- Returns next element
- Starts method
- Throws exception
Q4. What is yield break?
- Ends iteration
- Continues iteration
- Starts iteration
- Pauses iteration
Q5. Can yield be used in async methods?
- Yes
- No
- Sometimes
- Rarely
Q6. Does yield improve performance?
- No
- Yes
- Maybe
- Never
Q7. Can yield be used with foreach?
- No
- Yes
- Sometimes
- Never
Q8. Is yield syntactic sugar?
- No
- Yes
- Maybe
- Sometimes
Q9. Can yield break be omitted?
- No
- Yes
- Maybe
- Sometimes
Q10. Does yield affect state machine generation?
- No
- Yes
- Sometimes
- Never
๐ก Bonus Insight
The yield keyword is a powerful feature for implementing efficient, lazy data streams in C#.
๐ PDF Download
Need a handy summary for your notes? Download this topic as a PDF!