产量关键字是C#中的关键字之一,它继续让我感到困惑,我从来没有确信我正确地使用了它。
以下两段代码中,哪一段是首选的,为什么?
版本1:使用收益率返回
public static IEnumerable<Product> GetAllProducts(){using (AdventureWorksEntities db = new AdventureWorksEntities()){var products = from product in db.Productselect 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.Productselect product;
return products.ToList<Product>();}}