C#的yield return是怎么被调用到的? By Dawei XU Published Feb 27 2013 Contents 假设有如下代码: 1234567891011121314151617static IEnumerable<int> getInt() { for (int i = 0; i < 3; i++) { Console.WriteLine("get " + i); yield return i; } } static void Main(string[] args) { for (int i = 0; i < getInt().Count(); i++) { Console.WriteLine(getInt().ElementAt(i)); } } 输出结果是: 123456789101112131415161718192021get 0get 1get 2get 00get 0get 1get 2get 0get 11get 0get 1get 2get 0get 1get 22get 0get 1get 2 呵呵,说明了.Count()和ElementAt都是需要迭代的。