如何将列表框中的所有值相加
本文关键字:列表 | 更新日期: 2023-09-27 18:00:48
我有一个列表框,其中包含未指定数量的值。它们都将是一个十进制转换为字符串,例如
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".
谢谢!
您的代码被窃听。
更正:
decimal total = (from item in listbox.Items.Cast<ListItem>() select Convert.ToDecimal(item.Value)).Sum();
简单:
var s = lb.Items.Cast<ListItem>().Sum<ListItem>(p=>Convert.ToDecimal(p.Value));
var sum = 0;
foreach(var item in listBox.Items)
{
sum + = convert.ToDecimal(item.ToString());
}
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
}
创建文本框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);
}