计算textfile中的所有值

时间:2017-08-21 16:31:04

标签: c# text-files

我必须制作一个程序,允许管理员计算每种业务类型的总收入。

我已将每种类型的所有收入存储在单独的文本文件中,即。 .Mobile.txt,.Kiosk.txt,.Daily.txt

文本文件中每种类型的内容都是这样的

10
60
30

到目前为止,这是我生成的代码,但它仍无法正常工作

 private void Report_Load(object sender, EventArgs e)
    {

        List<double> kiosk = new List<double>();
        List<double> daily = new List<double>();
        List<double> mobile = new List<double>();
        foreach (string line in File.ReadAllLines(@".Kiosk.txt"))
        {
            kiosk.Add(double.Parse(line));
        }

        foreach (string line in File.ReadAllLines(@".Mobile.txt"))
        {
            mobile.Add(Double.Parse(line));

        }

        foreach (string line in File.ReadAllLines(@".Daily.txt"))
        {
            daily.Add(Double.Parse(line));
        }

        double sum_kiosk = kiosk.Sum();
        double sum_mobile = mobile.Sum();
        double sum_daily = daily.Sum();

        MessageBox.Show("Total revenue kiosk:" + sum_kiosk + "\nTotal revenue mobile:" + sum_mobile + "\nTotal revenue:" + sum_daily);
    }

错误是一个异常,表示“输入字符串格式不正确”。我似乎无法找到这个问题

如何解决此错误?或者是否有更好的替代方案使这项功能有效?

2 个答案:

答案 0 :(得分:1)

您可以使用此代码计算所有数字。并使用变量而不是列表

double mobile = 0;
foreach (string line in File.ReadAllLines(@"data.txt"))
{
    double temp;
    double.TryParse(line, out temp);
    mobile += temp;
}

答案 1 :(得分:0)

以下函数使用匿名方法进行计算。

    private void processFiles() { 
        var calculateTotal = new Func<String, Double>(filename => {
            if (!File.Exists(filename)) return 0;

            var dAmount = 0D;

            return (
                from line in File.ReadAllLines(filename)
                let isDouble = double.TryParse(line, out dAmount)
                select dAmount
            ).Sum();
        });

        var kiosk = calculateTotal(@"C:\test\totaltest\kiosk.txt");
        var daily = calculateTotal(@"C:\test\totaltest\daily.txt");
        var mobile = calculateTotal(@"C:\test\totaltest\mobile.txt");
    }