C# 计算列表视图中的单个列并将其显示在标签中



我有一个可以成功导出和导入的列表视图。 我的问题是我需要计算付款列(ListView 中的最后一列(并在标签中显示结果。 但是,我收到"输入字符串格式不正确"错误。

这是我的代码:

private void DisplayWeeklyEarnings()
    {
        decimal total =0;
        foreach (ListViewItem item in lvTimeSheet.Items)
        {
            total += Convert.ToDecimal(item.SubItems[4].Text);
        }
        lblEarnings.Text = String.Format("{0:C2}", total);
    }

我也试过:

total += Decimal.Parse(item.Subitems[4].Text);

其他人建议使用:

total += Decimal.Parse(item.Subitems(4).Text);

但是,这给了我一个关于使用子项作为方法的错误。所以显然这是错误的。

这是我的表格面孔:单击此处查看表单面

以下是填充了付薪列的表单:单击此处查看填充表单

任何帮助将不胜感激。 提前谢谢你。

最后一列包含货币符号。如果使用适当的十进制重载,则可以解析此内容。解析

 total += decimal.Parse(item.SubItems[4].Text, NumberStyles.Currency);

如果最后一列包含的值也无法通过此十进制重载进行解析。解析(例如空白值(,然后考虑使用

decimal d;    
if(decimal.TryParse(item.SubItems[4].Text, NumberStyles.Currency, CultureInfo.CurrentCulture, out d))
    total += d;

如果您没有对输入的完全控制,TryParse 的故障安全性更高,因为它不会在输入格式错误的情况下引发异常。

最新更新