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!

๐Ÿ” Navigation

๐Ÿ’ฌ Feedback
๐Ÿš€ Start Learning
Share:

Tags: