我正在查找所选项目的小计
本文关键字:项目 选项 查找 | 更新日期: 2023-09-27 18:04:42
我在一个数组中有商品的价格:
double[] productPriceArray = { 1162.99, 399.99, 329.99, 199.99, 149.99 };
我试图找到用户放入"购物车"的总数。我不知道该怎么做。我知道我可以用这行代码:
subtotal = productCostArray[lbxCart.SelectedIndex];
lblSubtotal.Text = subtotal.ToString("c");
来求其中一个指标的总和,但是如何求多个指标的总和呢?
谢谢!
在当前的设计中没有办法,您至少需要一个产品列表和产品价格映射,然后您需要一个购物车中的产品列表,在购物车类中您可以定义一个函数来获取所有产品的小计。
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());
如果您有一个选定项目索引列表(如您的示例所示),您可以这样做:
var subtotal = SelectedIndices.Select(idx => productPriceArray[idx]).Sum();