How yield return works in c#
问题 I have following piece of code. public static void main(string []args) { var intergers = GetCollection(); foreach(var val in intergers) { console.writeline(val); } } public IEnumerable<int> GetCollection() { yield return 10; var obj = new MyClass(); obj.performLargeAction(); yield return 1; var obj = new MyClass(); obj.perform(); yield return 2; console.writeline("I am finished now"); } Now, when I debug the code and see the foreach iteration, then I see that first time method executes till