/// <summary> /// 傳統(tǒng)迭代方式和yield關(guān)鍵字迭代方式對比 /// </summary> public static void IteratorComparisonRun() { Console.WriteLine("迭代器方法使用yield關(guān)鍵字:"); foreach (var number in GetNumbersWithYield()) { Console.WriteLine(number); }
Console.WriteLine("傳統(tǒng)迭代方法返回一個List<int>"); var numbers = GetNumbersWithoutYield(); foreach (var number in numbers) { Console.WriteLine(number); } }
/// <summary> /// 迭代器方法使用yield關(guān)鍵字 /// </summary> /// <returns></returns> public static IEnumerable<int> GetNumbersWithYield() { for (int i = 0; i < 6; i++) { yield return i; } }
/// <summary> /// 傳統(tǒng)迭代方法返回一個List<int> /// </summary> /// <returns></returns> public static List<int> GetNumbersWithoutYield() { var numbers = new List<int>(); for (int i = 0; i < 6; i++) { numbers.Add(i); } return numbers; }