降伏キーワードは、それらの一つであるキーワードを私に神秘を続けてC#で、私はそれを正しく使用していることを私は確信していたことがありません。
次の2つのコードのうち、どちらが推奨され、なぜですか?
バージョン1:利回り収益の使用
public static IEnumerable<Product> GetAllProducts()
{
using (AdventureWorksEntities db = new AdventureWorksEntities())
{
var products = from product in db.Product
select product;
foreach (Product product in products)
{
yield return product;
}
}
}
バージョン2:リストを返す
public static IEnumerable<Product> GetAllProducts()
{
using (AdventureWorksEntities db = new AdventureWorksEntities())
{
var products = from product in db.Product
select product;
return products.ToList<Product>();
}
}
yield return
の結果を反復処理するコードGetAllProducts()
によって、ユーザーが処理を途中でキャンセルする機会が得られる場合は、使用するのに適したケースが見られます。
yield
IEnumerable<T>
とその種類に関連付けられています。いずれにせよ怠惰な評価