我正在尝试查找所选项目的小计

时间:2013-03-20 04:41:17

标签: c# arrays

我有数组中项目的价格:

double[] productPriceArray = { 1162.99, 399.99, 329.99, 199.99, 149.99 };

我试图找到用户放入“购物车”的总数。我不知道该怎么做。我知道我可以使用代码行:

subtotal = productCostArray[lbxCart.SelectedIndex];  
lblSubtotal.Text = subtotal.ToString("c"); 

找到其中一个指数的总和,但我怎样才能找到多个指数的总和?

谢谢!

2 个答案:

答案 0 :(得分:0)

目前的设计没有办法,您需要至少一个产品和产品价格映射列表,然后您需要购物车和购物车类中的产品列表,您可以定义一个函数来获取所有产品的小计

public class  Product
{
    public string ProductId { get; set; }

    public string ProductName { get; set; }

    public double Price { get; set; }
}

public class ShoppingCart
{
    public string CartId { get; set; }

    public List<Product> Products { get; set; }

    public void AddProductToCart(Product p)
    {
        if(Products==null)
            Products = new List<Product>();
         if(p!=null)
                 Products.Add(p);

    }

    public double CartPrice()
    {
        return Products != null ? Products.Sum(p => p.Price):0D;
    }
}

和用法

 var shopCart = new ShoppingCart();
        shopCart.AddProductToCart(new Product {ProductId = "1",Price = 12.09, ProductName = "P1"});
          shopCart.AddProductToCart(new Product {ProductId = "2",Price = 11.09, ProductName = "P2"});
        MessageBox.Show(shopCart.CartPrice().ToString());

答案 1 :(得分:0)

如果您有所选项目索引的列表(如您的示例所示),您可以执行以下操作:

var subtotal = SelectedIndices.Select(idx => productPriceArray[idx]).Sum();