【发布时间】:2014-07-16 11:59:46
【问题描述】:
我想要做什么
找出购物车列表中所有商品的价格总和。
我是如何解决的
我认为将其作为属性添加到 Cart 类中是有意义的。 我还认为只使用 foreach 循环来迭代 CartList 并将 itemprice (ProductsInCart.Price) 添加到临时变量 (PriceSum) 是合乎逻辑的,该变量在“Cart.PriceAllContent”属性中返回。
C#
//Instantiating Cart
Cart C2Cart = new Cart();
//Getting Item in cart from Session
C2Cart.TakeCart();
//Writing out result
Response.Write(C2Cart.PriceAllContent);
类
public class Cart
{
//FIELDS
private List<ProductsInCart> _cartList;
//PROPERTIES
public List<ProductsInCart> CartList
{
get { return _cartList; }
set { _cartList = value; }
}
public float PriceAllContent
{
get
{
float PriceSum= 0;
foreach (var ProductsInCart in _cartList)
{
PriceSum= +ProductsInCart.Price;
}
return PriceSum;
}
}
...........
}
public class ProductsInCart
{
//FIELDS
private int _id;
private string _name;
private float _price;
private int _amount;
............
}
完整的类代码可以看这里(可能还没有完全更新。如果需要请询问) https://github.com/chmodder/PlanteskoleWebsite/tree/master/App_Code
问题
问题是,当写出结果时,它只会写出最后一个项目的价格,而不是所有项目价格的总和。
Response.Write(C2Cart.PriceAllContent);
我已经尝试过寻找解决方案,但找不到我需要的东西。 如果有人能帮我解决问题,我会是一个快乐的人。
【问题讨论】:
-
PriceSum= +ProductsInCart.Price->PriceSum += ProductsInCart.Price... 你在做PriceSum = (+1 * ProductsInCart.Price)。您可以通过放置断点、单步执行代码和检查变量来发现此类问题。