如何在列表框中添加所有值?

时间:2014-04-29 10:55:23

标签: c#

我有一个列表框,其中包含未指定数量的值。 它们都是十进制转换为字符串,例如

21.10
32.50
43.49
42.00

然后我想将这些全部添加并在文本框中显示,我将如何解决这个问题?

我的猜测是我首先需要将它们全部从ListItem转换回小数,因为很多时候都有一个项目。我不知道如何解决这个问题

这就是我尝试过的(来自旧帖子)

decimal total = (from string S in Listbox.Items select Convert.ToDecimal(S)).Sum();

收到此错误:

  

无法转换类型为#System; Web.UI.WebControls.ListItem'的对象至   输入' System.String'。

谢谢!

5 个答案:

答案 0 :(得分:1)

简单:

var s = lb.Items.Cast<ListItem>().Sum<ListItem>(p=>Convert.ToDecimal(p.Value));

答案 1 :(得分:1)

你的代码被窃听了。

修正:

decimal total = (from item in listbox.Items.Cast<ListItem>() select Convert.ToDecimal(item.Value)).Sum();

答案 2 :(得分:0)

  double sum=0; //var to store the sum of items

    foreach (string s in listBox1.Items)
    {
       sum=sum+double.Parse(s); // in each iteration we parse the string value of listbox to double and add it to current sum
    }

答案 3 :(得分:0)

var sum = 0;
foreach(var item in listBox.Items)
{
   sum + = convert.ToDecimal(item.ToString());
}

答案 4 :(得分:0)

创建文本框txtAddNumbers,列表框lstNumbers,按钮btnAdd,标记lblSum

按钮代码btnAdd点击 -

private void btnAdd_Click(object sender, EventArgs e)
    {
        lstNumbers.Items.Add(txtAddNumbers.Text);
        txtAddNumbers.Clear();


        int iList = 0, result = 0;
        while (iList < lstNumbers.Items.Count)
        {
            result += Convert.ToInt32(lstNumbers.Items[iList++]);
        }

        lblSum.Text = "Sum : " + Convert.ToString((double)result);   

        //you can also calculate Average
        lblMean.Text = "Mean : " + Convert.ToString((double)result / iList);

    }