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