C# 如何计算篮子中的项目总数

C# 如何计算篮子中的项目总数,c#,C#,下面的类是我为购物篮创建的。我是否朝着实现预期结果的方向前进 namespace Basket { public class ShoppingBasket { private string productName; private decimal latestProductValue; private int quantity; private decimal Total; public void A

下面的类是我为购物篮创建的。我是否朝着实现预期结果的方向前进

namespace Basket
{
   public class ShoppingBasket
    {
        private string productName;
        private decimal latestProductValue;
        private int quantity;
        private decimal Total;

        public void AddProduct( string productName, decimal latestProductValue, int quantity)
        {
            string ProductName = productName;
            decimal LatestProductValue = latestProductValue;
            int Quantity = quantity;

        }

        public string ProductName
        {
            get { return productName; }
            set
            {
                if (productName == ProductName)
                    productName = ProductName;
            } 
        }

        public decimal LatestProductValue
        {
            get { return latestProductValue; }
            set
            {
                if (latestProductValue == LatestProductValue)
                    latestProductValue = LatestProductValue;
            }
        }


        public int Quantity
        {
            get { return quantity; }
            set
            {
                if (quantity > 0)
                    quantity = value;
            }   
        }

        public decimal GetTotal
        {
            get { return quantity * latestProductValue; }
        }

    }
}
此处为示例项目:

这是你应该做的:

篮球项目类别

public class BasketItem {

  private string itemName = string.Empty;
  private decimal itemPrice = 0;

  public string ItemName {
    get {
      return itemName;
    }
    set {
      itemName = value;
    }
  }

  public decimal ItemPrice {
    get {
      return itemPrice;
    }
    set {
      itemPrice = value;
    }
  }
}
public class Basket {
  private List<BasketItem> lstBasketItems = new List<BasketItem>();

  public void AddItemToBasket(BasketItem addedItem) {
    lstBasketItems.Add(addedItem);
  }

  public decimal CalculateTotal() {
    decimal total = lstBasketItems.Sum(x => Convert.ToDecimal(x.ItemPrice));
    return total;
  }
}
篮类

public class BasketItem {

  private string itemName = string.Empty;
  private decimal itemPrice = 0;

  public string ItemName {
    get {
      return itemName;
    }
    set {
      itemName = value;
    }
  }

  public decimal ItemPrice {
    get {
      return itemPrice;
    }
    set {
      itemPrice = value;
    }
  }
}
public class Basket {
  private List<BasketItem> lstBasketItems = new List<BasketItem>();

  public void AddItemToBasket(BasketItem addedItem) {
    lstBasketItems.Add(addedItem);
  }

  public decimal CalculateTotal() {
    decimal total = lstBasketItems.Sum(x => Convert.ToDecimal(x.ItemPrice));
    return total;
  }
}

这是一个非常简单的示例,未经测试。我试着向你展示你应该如何做到这一点。也不是说这个示例不处理在页面调用之间存储篮子。您很可能会使用会话状态或类似的方式来实现逻辑。

否。您的“篮子”只包含一个产品?难道你不想在篮子里放一个收集对象,这样你就可以存储重复的调用来添加更多的产品吗?创建一个单独的“BasketItem”类,该类包含名称、数量、成本,然后将它们添加到Items collectionok我会这样做的。感谢您的帮助。我将研究如何实现此解决方案,然后再与您联系。刚刚实现了您的解决方案,但它有错误。您能否提供一些详细信息?我将再次尝试您的代码,并让您知道发生了什么。@L.Russell它工作得非常好。您可以下载示例项目。我把它包括在我的回答中。