Uso apropiado de 'rendimiento de rendimiento'

losrendimiento la palabra clave es una de esaspalabras clave en C # eso continúa desconcertándome, y nunca he estado seguro de que lo estoy usando correctamente.

De los siguientes dos códigos, ¿cuál es el preferido y por qué?

Versión 1: Usando rendimiento de rendimiento

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;
        }
    }
}

Versión 2: Devuelve la lista

public static IEnumerable<Product> GetAllProducts()
{
    using (AdventureWorksEntities db = new AdventureWorksEntities())
    {
        var products = from product in db.Product
                       select product;

        return products.ToList<Product>();
    }
}

Respuestas a la pregunta(16)

Su respuesta a la pregunta