【发布时间】:2014-03-21 08:45:05
【问题描述】:
在下面的代码中,我创建了一种使用 Yield 打印值的方法,另一种只是简单的列表迭代。所以在这里我的问题是从两种方法获得的输出是相同的,那么为什么我们要使用 Yield 关键字呢?并请告诉我 Yield 关键字在应用程序中的确切用法。
代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace YieldKeyWordEg
{
class Program
{
static void Main(string[] args)
{
Animals obj = new Animals();
Console.WriteLine("------ Using Yield ------");
foreach (var item in obj.GetName())
{
Console.WriteLine(item);
}
Console.WriteLine("------ Using List Iteration ------");
foreach (var items in obj.GetNameinList())
{
Console.WriteLine(items);
}
Console.ReadLine();
}
}
class Animals
{
public IEnumerable<string> GetName()
{
List<string> objList = new List<string>();
objList.Add("Cow");
objList.Add("Goat");
objList.Add("Deer");
objList.Add("Lion");
foreach (var item in objList)
{
yield return item;
}
}
public List<string> GetNameinList()
{
List<string> objList = new List<string>();
objList.Add("Cow");
objList.Add("Goat");
objList.Add("Deer");
objList.Add("Lion");
return objList;
}
}
}
输出:
------ Using Yield ------
Cow
Goat
Deer
Lion
------ Using List Iteration ------
Cow
Goat
Deer
Lion
【问题讨论】:
标签: c# asp.net .net yield-return