항복 키워드는 그 중 하나입니다 키워드 나 신비화 계속 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>
그리고 그 종류에 묶여 있습니다. 그것은 어쨌든 게으른 평가에있다