如何仅将列表的最后一个对象添加到计数中?

时间:2019-05-28 10:12:41

标签: c# wpf list count

我有一堂课,其中将名称和价格组合到一个列表中,然后添加到我的listbox中。

我希望标签显示列表中每个乘车的总价格,但是当我将计算放入foreach循环时,它会不断添加每条记录。因此,我只想添加列表框的 last 值。

Prices被添加到一个类中,因此它们被称为RideNamePrice.Price。我需要计算这些值。

代码:

    double total = 0
    buttonclick{
      foreach (var item in lbRides.Items)
      {
        total = total+ RideNamePrice.Price;                                 
      }
      lbtotal.Content = Convert.ToString(total);
    }

2 个答案:

答案 0 :(得分:0)

我没有得到您真正想要的。但是在您的double precision中您没有使用过foreach。您总是将itemtotal添加在一起,因此您的RideNamePrice.Price完全没有用。

我认为您可以进行以下修改:

foreach

或者,如果您要将最后一件商品的价格添加到double total = 0 buttonclick(Object sender,EventArgs e) { foreach (var item in lbRides.Items) { total = total+ item.Price; } lbtotal.Content = Convert.ToString(total); } 中,则可以按以下方式编辑代码:

total

答案 1 :(得分:0)

您可以通过两种方式进行操作:

在每次计算中将total重置为0:

buttonclick{
  double total = 0
  foreach (var item in lbRides.Items)
  {
    total = total+ RideNamePrice.Price;                                 
  }
  lbtotal.Content = Convert.ToString(total);
}

关于此的一则评论:itemobject类型的,您如何编译此代码,因此当您尝试访问Price时,此代码将无法工作领域。而且方法签名是错误的。

或按照自己的意愿做(由于方法签名错误,因此仍无法编译):

buttonclick
{
  var item = lbBox.Items[lbBox.Items.Count - 1];
  // You have to perform casting in order to access fields in your class,
  // but be carefull, castedToType can be null after this operation
  var castedToType = item as MyType;
  total += castedToType.Price;
  // No need to call Convert.ToString()
  lbtotal.Content = total.ToString();
}