如何计算列表框的总和

How to calculate the total sum of a listbox

我正在尝试计算列表框中一列的总数。我的代码如下:

变量

double VanTot = Menu.VanillaQ * 1.00;
        double LCTot = Menu.LCQ * 1.50;
        double ChocTot = Menu.ChocQ * 1.50;

列表框

   if (Menu.VanillaQ > 0)
        {

            listBox2.Items.Add("£" + VanTot.ToString("N2")); 

        }

        if (Menu.LCQ > 0)
        {

            listBox2.Items.Add("£" + LCTot.ToString("N2"));

        }

        if (Menu.ChocQ > 0)
        {
            listBox2.Items.Add("£" + ChocTot.ToString("N2"));
        }

如何通过添加每个 'Tot' 来计算总数并将其显示在此文本框中:

   private void Totaltxt_TextChanged(object sender, TextChangedEventArgs e)
    {


    }

当相应文本框的文本以任何方式更改时,将调用 Totaltxt_TextChanged 方法,因此我不确定这如何适用于总计。每当您希望计算和显示总数时,您可能只插入以下行。我假设 "Totaltxt" 是您的文本框的名称。

Totaltxt.Text = (VanTot + LCTot + ChocTot).ToString();

如果你想获得ListBoxSum中的所有Items,你可以使用LINQ Sum来帮助你。但是在到达那里之前你需要一些中间步骤:

  1. object 中的 ListBox.Items 转换为 string
  2. 将每个元素转换为数字数据类型,例如 decimal
  3. 对结果求和

你可以用 LINQ 这样的单行代码来做到这一点:

decimal sum = listBox1.Items
               .Cast<string>() //read (1)
               .Select(x => Convert.ToDecimal(x)) //read (2)
               .Sum(); //read (3)