使用for循环而不是if语句从列表框中累积值

本文关键字:列表 语句 循环 for if 使用 | 更新日期: 2023-09-27 17:50:36

我已经学会了如何用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循环而不是if语句从列表框中累积值

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

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

该方法应该做您想要的,尽管您也需要访问循环中的Value属性,类似于您的if语句:

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

这在功能上不同于你的if语句所做的。

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

你可能想在循环中检查一下。

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