2013-03-20 4 views
0

선택한 항목의 합계 찾으려고 노력 해요 :내가 배열에서 항목의 가격을

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

내가 "사용자가에두고 사람의 총을 찾기 위해 노력하고 있습니다를 카트". 나는 그것에 대해 어떻게 가야할지 모르겠다. 나는 코드의 라인을 사용할 수 있습니다 알고

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

는 지표 중 하나의 총을 찾기 위해,하지만 어떻게 여러 인덱스의 총을 찾을 수 있습니까?

감사합니다.

+0

은 "장바구니"를 하는가가 인덱스 배열? 그렇다면'for' 루프가 아마도 가장 쉽습니다. – Matthew

+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()); 
0

, 당신은 할 수 :

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

두 제품의 가격이 같으면 어떻게됩니까? –

+0

좋은 지적. 새로운 솔루션은이를 해결합니다. – joce

관련 문제