internal class Program
{
static List<int> GetInitialData()
{
return new List<int>() { 1, 2, 3, 4 };
}
static IEnumerable<int> FilerWithoutYield()
{
List<int> result = new List<int>();
foreach (var item in GetInitialData())
{
if (item > 2)
{
result.Add(item);
}
}
return result;
}
static IEnumerable<int> FileWithYield()
{
foreach (var item in GetInitialData())
{
if (item > 2)
{
yield return item;
}
}
yield break;
Console.WriteLine("这里的代码不执行");
}
static void Main(string[] args)
{
foreach (var item in FilerWithoutYield())
{
Console.WriteLine(item);
}
foreach (var item in FileWithYield())
{
Console.WriteLine(item);
}
Console.ReadKey();
}
}