【问题标题】:Get the sum of listview Item and int value获取listview Item和int值之和
【发布时间】:2015-10-03 13:38:51
【问题描述】:

我正在制作购物车。我有 3 个文本框(txtItemCode,txtItemName,txtQuantity),所以每次我添加一个项目时,它都会显示到我的“listView1”按钮单击时有 3 列(项目代码、项目名称、数量),我还有一个“面板 1”将显示购物车中商品的总金额,“panel1”有 2 个标签(TaxLabel、AmountLabel)。

物品数量中的每一个数字都等于120

我想在“panel1”中查看基于我购物车中商品数量的总价

在我的代码中,我可以获得购物车中商品的总价格,但我也获得了文本框“txtQuantity.Text”的输入,但我无法摆脱它 这是我的代码:

int x = int.Parse(txtQuantity.Text);
foreach (ListViewItem li in listView1.Items)
{
    x += int.Parse(li.SubItems[2].Text) * 120;
}
labelItemAmount.Text = Convert.ToString(x);

【问题讨论】:

  • 您似乎在每次迭代中都覆盖了 x 的值,这是为什么呢?
  • 抱歉复制错误。现在编辑帖子
  • 你能举例说明索引 2 处的 subItem 的内容是什么吗?在您谈论 txtQuantity 文本框的部分,我不明白您的问题
  • txtQuantity 中有什么?它与项目表有什么关系?
  • 放断点。使用调试器。祝你好运

标签: c# winforms listview


【解决方案1】:

虽然我认为使用数量子项的值而不是 120 更好,但您可以使用这样的代码来获取总和:

var sum = this.listView1.Items
              .Cast<ListViewItem>()
              .Sum(item => int.Parse(item.SubItems[2].Text)* 120);
labelItemAmount.Text = sum.ToString();

如果要使用数量子项的值,假设数量子项的索引为3,则使用int.Parse(item.SubItems[3].Text)而不是120。

另外别忘了加using SystemLinq;

【讨论】:

  • @Steve 是的,谢谢,我刚刚输入了风险最小的内容,我会更改它。
猜你喜欢
  • 1970-01-01
  • 2011-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-02
  • 1970-01-01
相关资源
最近更新 更多