平時在存取資料時可能會類似下面的方式,會將資料整理完,儲存在清單中,再一次將整個清單回傳:
在 C# 中回傳 IEnumerable 或 IEnumerator 時可以使用 yield 關鍵字,將資料直接回傳上一層直接處理,然後再繼續處理,不需要等到所有資料蒐集完畢再一次回傳,不只可以節省時間,還可以節省記憶體空間。
yield 範例:
不需要繼續執行也可以使用 yield break; 來達成平時的 return 跳出方法
public IEnumerable<int> GetNumbers()
{
var numbers = new List<int>();
for (int i = 0; i < 100_000_000; i++)
{
numbers.Add(i);
}
return numbers;
}
在 C# 中回傳 IEnumerable 或 IEnumerator 時可以使用 yield 關鍵字,將資料直接回傳上一層直接處理,然後再繼續處理,不需要等到所有資料蒐集完畢再一次回傳,不只可以節省時間,還可以節省記憶體空間。
yield 範例:
public static IEnumerable<int> GetNumbers()
{
for (int i = 0; i < 100_000_000; i++)
{
yield return i;
}
}
不需要繼續執行也可以使用 yield break; 來達成平時的 return 跳出方法
yield break;
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com