cómo agregar un método "obtener todo" usando linq

Quiero agregar un método de "obtener todos los elementos" en mi clase. con lineCollection puedo ver (.find(), .findall(), .findindex() ) pero no creo que esto sea lo que necesito. ¿Alguna ayuda?

using System.Collections.Generic;
using System.Linq;

namespace SportsStore.Domain.Entities
{
    public class Cart
    {
        private readonly List<CartLine> lineCollection = new List<CartLine>();

        public IEnumerable<CartLine> Lines
        {
            get { return lineCollection; }
        }

        public void AddItem(Product product, int quantity)
        {
            CartLine line = lineCollection
                .Where(p => p.Product.ProductID == product.ProductID)
                .FirstOrDefault();

            if (line == null)
            {
                lineCollection.Add(new CartLine {Product = product, Quantity = quantity});
            }
            else
            {
                line.Quantity += quantity;
            }
        }

        public void RemoveLine(Product product)
        {
            lineCollection.RemoveAll(l => l.Product.ProductID == product.ProductID);
        }

        public decimal ComputeTotalValue()
        {
            return lineCollection.Sum(e => e.Product.Price*e.Quantity);
        }

        public void Clear()
        {
            lineCollection.Clear();
        }

    }

    public class CartLine
    {
        public Product Product { get; set; }
        public int Quantity { get; set; }
    }
}

preguntado el 25 de agosto de 12 a las 03:08

1 Respuestas

lineCollection ya es una lista. Simplemente devuelva List para obtener todos los elementos. Si desea hacer algo con esos elementos, puede usar un ciclo foreach. Si necesita convertir un IQueryable en una lista, use .ToList()

Respondido 25 ago 12, 03:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.