0

私は配列のアイテムの価格を持っています:

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

ユーザーが「カート」に入れたものの合計を見つけようとしています。どうすればいいのかわかりません。私はコード行を使用できることを知っています:

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

インデックスの1つの合計を見つけるには、複数のインデックスの合計を見つけるにはどうすればよいですか?

ありがとう!

4

2 に答える 2

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());
于 2013-03-20T04:43:30.903 に答える
0

選択した項目インデックスのリストがある場合 (例が示唆しているように)、次のことができます。

var subtotal = SelectedIndices.Select(idx => productPriceArray[idx]).Sum();
于 2013-03-20T04:48:07.827 に答える