该产量关键字是其中的一个关键字,在C#是继续迷惑我,而且我正确使用它,我从来没有自信。
在以下两段代码中,哪个是首选,为什么?
版本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>
其种类。在