https://blogs.msdn.microsoft.com/oldnewthing/20080814-00/?p=21243/
https://blogs.msdn.microsoft.com/oldnewthing/20080815-00/?p=21223/
http://blogs.msdn.com/b/stuartleeks/archive/2008/07/14/a-closer-look-at-yield.aspx
http://csharpindepth.com/Articles/Chapter6/IteratorBlockImplementation.aspx
http://blogs.msdn.com/b/stuartleeks/archive/2008/07/15/a-closer-look-at-yield-part-2.aspx
https://blogs.msdn.microsoft.com/ericlippert/2009/05/18/foreach-vs-foreach/