Yield
Foreach 中使用
//逐一帶出Enumerable 內資料 並回傳IEnumerable<class> 型態結果
foreach (var aa in IEnumerable)
{
yield return new class{
orderNo=aa.orderNo,
ProductName=aa.ProductName
}
}
//只帶回第一筆資料
foreach (var aa in IEnumerable)
{
return new class{
orderNo=aa.orderNo,
ProductName=aa.ProductName
}
}
//當訂單號碼為1,就會結束迴圈
foreach (var aa in IEnumerable)
{
if(aa.OrderNo==1)
yield break;
}
PS.
1.Yield break;可在Try catch 中,但不可在Finally中
2.Yield return;不可在Try catch中,但可在Try-finally 的Try中
參考資訊:
http://www.dotblogs.com.tw/hatelove/archive/2012/05/10/introducing-foreach-ienumerable-ienumerator-yield-iterator.aspx
http://msdn.microsoft.com/zh-tw/library/9k7k7cf0.aspx
http://www.dotblogs.com.tw/dc690216/archive/2010/02/19/13697.aspx