我有一个列表框,其中包含未指定数量的值。 它们都是十进制转换为字符串,例如
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'。
谢谢!
答案 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);
}