实践代码 定义方法
public static IEnumerable<int> TestFor()
{
List<int> numbers=new List<int>();
for (int i=0;i<10;i++)
{
numbers.Add(i);
Thread.Sleep(1000);
}
return numbers;
}
private static IEnumerable<int> IteratorMethod()
{
int index = 0;
while (index < 10)
{
// if (index % 2 == 1)
yield return index;
index++;
Thread.Sleep(1000);
}
}
测试代码
foreach (var item in IteratorMethod())
{
//一条一条显示
Console.WriteLine(item.ToString());
}
Console.WriteLine("=================foreche===============");
foreach (var item in TestFor())
{
//一下子全部显示出来
Console.WriteLine(item.ToString());
}
结果图
结论: 使用yield的是一次出来一个,而不使用yield的是必需等所有加到数组,然后一下子全部出来。
延伸学习:www.cnblogs.com/blueberryzz… www.cnblogs.com/blueberryzz…