如何总结列表框中的所有数字
问题描述:
我想总结列表框中的所有数字,数字来自数据库 日期类型是金钱,并且在每次点击按钮时我想显示总结列表框中的数字。如何总结列表框中的所有数字
代码我使用:
decimal sum = 0;
private void but_TotalSale_Click(object sender, EventArgs e)
{
for (int i = 0; i < lst_Price.Items.Count; i++)
{
sum += Convert.ToDecimal(lst_Price.Items[i].ToString());
}
textBox1.Text = Convert.ToString(sum);
}
而且我得到这个错误
型 'System.FormatException' 未处理的异常出现在mscorlib.dll
更多信息:输入字符串的格式不正确。
该怎么办?以及如何解决错误。
答
我认为这个问题是你的列表项转换为字符串不使用列表项中的数值。
试试这个:
decimal sum = 0;
private void but_TotalSale_Click(object sender, EventArgs e) {
for (int i = 0; i < lst_Price.Items.Count; i++) {
sum += Convert.ToDecimal(lst_Price.Items[i].Text);
}
textBox1.Text = Convert.ToString(sum);
}
+0
我试过,但没有工作,我试图删除'.text'和'.tostring',但我仍然在错误'.tostring'抛出错误,并且在代码中不接受文本'.text' –
答
为什么要转换为字符串中的首位
lst_Price.Items[i]
是一个对象,Convert.ToDecimal()
具有过载,可以得到一个object
所以可以做
for (int i = 0; i < listBox1.Items.Count; i++)
{
sum += Convert.ToDecimal(lst_Price.Items[i]);
}
或LINQ中的一行
sum = lst_Price.Items.OfType<object>().Sum(x => Convert.ToDecimal(x));
答
你的代码是正确的。列表框里面是否有文字?
那么,在错误之后,输入字符串是什么?当抛出错误时,'lst_Price.Items [i] .ToString()'的值是多少? (假设这是引发错误的那一行...是这样吗?) – David
在你的for循环中的一行放置一个断点并检查'lst_Price.Items [i]'。 – Filburt
时间是数字全部 –