【问题标题】:Accumulating values from a listbox with a for loop instead of if statements使用 for 循环而不是 if 语句从列表框中累积值
【发布时间】:2014-03-17 19:59:17
【问题描述】:

我已经学会了如何使用 if 语句来累积总数,现在我正在尝试缩短我的代码。 我的一个朋友告诉我,您可以使用 FOR 循环来执行此操作,所以我尝试了一下,但我无法完全理解 FOR 循环。

我的IF 代码是这个...

if (lbSnacks.Items[0].Selected)
{
    decSnackSaleTotal = decSnackSaleTotal + Convert.ToDecimal(lbSnacks.Items[0].Value);
}
if (lbSnacks.Items[1].Selected)
{
   decSnackSaleTotal = decSnackSaleTotal + Convert.ToDecimal(lbSnacks.Items[1].Value);
}
if (lbSnacks.Items[2].Selected)
{
    decSnackSaleTotal = decSnackSaleTotal + Convert.ToDecimal(lbSnacks.Items[2].Value);
}
if (lbSnacks.Items[3].Selected)
{
     decSnackSaleTotal = decSnackSaleTotal + Convert.ToDecimal(lbSnacks.Items[3].Value);
}
if (lbSnacks.Items[4].Selected)
{
     decSnackSaleTotal = decSnackSaleTotal + Convert.ToDecimal(lbSnacks.Items[4].Value);
}
if (lbSnacks.Items[5].Selected)
{
     decSnackSaleTotal = decSnackSaleTotal + Convert.ToDecimal(lbSnacks.Items[5].Value);
}

当然,我将其注释掉以尝试使用 for 循环。 我使用的循环是这样的:

for (int i = 0; i < lbSelected.Items.Count; i++)
{
   decSnackSaleTotal += Convert.ToDecimal(lbSelected.Items[i]); 
}

lbSelected 是我的第二个listbox,所选商品来自客户。 lbSnacks 是我的第一个 listbox 小吃选择。

谢谢!

【问题讨论】:

  • for 循环看起来没问题,你能提供更多关于什么不工作的信息吗?我注意到您没有在 for 循环中使用 .Value (但您在 if 语句中使用了)。这是故意的吗?

标签: c# asp.net for-loop visual-web-developer-2010 listboxitems


【解决方案1】:

您可能无法将项目转换为十进制,看来您必须像使用 if 方法一样阅读 Value 属性。

for (int i = 0; i < lbSelected.Items.Count; i++){
            decSnackSaleTotal += Convert.ToDecimal(lbSelected.Items[i].Value); 
}

【讨论】:

    【解决方案2】:

    这种方法应该可以满足您的需求,尽管您也需要访问循环中的 Value 属性,类似于您的 if 语句:

    decSnackSaleTotal += Convert.ToDecimal(lbSelected.Items[i].Value);
    

    这在功能上与您的 if 语句所做的不同。

    • 在前一种情况下,您只需将一个值添加到总数中(如果它被选中)。
    • 在后一种情况下,无论是否选中,您都将添加所有值。

    您可能想在循环中检查它。

    还有其他方法可以解决这个问题,但这至少比一次检查每个元素要好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-26
      • 2015-10-24
      • 1970-01-01
      • 2013-11-17
      • 2014-03-13
      相关资源
      最近更新 更多