在下面的代碼中,我創建了一個使用Yield打印值的方法,另一個方法是簡單的列表迭代。所以這裏我的問題是從兩個方法獲得的輸出都是一樣的,爲什麼我們要使用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
您能否顯示yield的任何實際用法或此類用法的任何鏈接? – szpic
@szpic請參閱編輯。 – Ehsan
謝謝。我也發現這個鏈接可以充分理解yield的實際用法:[Click](http://programmers.stackexchange.com/questions/97295/a-practical-use-of-yield-keyword-in-c) – szpic