C#: yield return statement inside a using() { } block Disposes before executing | Dark Hacker News