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

Learn More About C# ๐Ÿ“š

1. What is C#? ๐Ÿ‘‰ Explained
2. Main Features of C# ๐Ÿ‘‰ Explained
3. Difference Between C# and Java ๐Ÿ‘‰ Explained
4. Common Language Runtime (CLR) in C# ๐Ÿ‘‰ Explained
5. Common Type System (CTS) in C# ๐Ÿ‘‰ Explained
6. Common Language Specification (CLS) in C# ๐Ÿ‘‰ Explained
7. Value Types vs Reference Types in C# ๐Ÿ‘‰ Explained
8. What is a Namespace in C#? ๐Ÿ‘‰ Explained
9. Purpose of the 'using' Keyword in C# ๐Ÿ‘‰ Explained
10. Different Data Types in C# ๐Ÿ‘‰ Explained
11. Difference Between int and Int32 in C# ๐Ÿ‘‰ Explained
12. Difference Between float, double, and decimal in C# ๐Ÿ‘‰ Explained
13. What is the Default Value of a Boolean in C#? ๐Ÿ‘‰ Explained
14. What is Boxing and Unboxing in C# ๐Ÿ‘‰ Explained
15. What are the Different Types of Operators in C# ๐Ÿ‘‰ Explained
16. Difference Between Equals and == in C# ๐Ÿ‘‰ Explained
17. What is the Null-Coalescing Operator ?? in C# ๐Ÿ‘‰ Explained
18. What is the Ternary Operator in C# ๐Ÿ‘‰ Explained
19. How Does the Switch Statement Work in C# ๐Ÿ‘‰ Explained
20. What is Object-Oriented Programming in C# ๐Ÿ‘‰ Explained
21. What are the Four Pillars of OOP in C# ๐Ÿ‘‰ Explained
22. What is Encapsulation in C# ๐Ÿ‘‰ Explained
23. What is Inheritance in C# ๐Ÿ‘‰ Explained
24. What is Polymorphism in C# ๐Ÿ‘‰ Explained
25. What is Abstraction in C# ๐Ÿ‘‰ Explained
26. What is an Abstract Class in C# ๐Ÿ‘‰ Explained
27. What is an Interface in C# ๐Ÿ‘‰ Explained
28. Can a Class Implement Multiple Interfaces in C#? ๐Ÿ‘‰ Explained
29. Difference Between Abstract Class and Interface in C# ๐Ÿ‘‰ Explained
30. How Do You Create a Class in C#? ๐Ÿ‘‰ Explained
31. What is a Constructor in C# ๐Ÿ‘‰ Explained
32. What Are the Types of Constructors in C# ๐Ÿ‘‰ Explained
33. What is a Static Constructor in C# ๐Ÿ‘‰ Explained
34. Difference Between Static and Non-Static Members in C# ๐Ÿ‘‰ Explained
35. What is the Use of 'this' Keyword in C# ๐Ÿ‘‰ Explained
36. What is a Destructor in C# ๐Ÿ‘‰ Explained
37. What is Object Initializer Syntax in C# ๐Ÿ‘‰ Explained
38. What is the Difference Between Field and Property in C# ๐Ÿ‘‰ Explained
Share:

Tags:


Feedback Modal Popup