我必须制作一个程序,允许管理员计算每种业务类型的总收入。
我已将每种类型的所有收入存储在单独的文本文件中,即。 .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);
}
错误是一个异常,表示“输入字符串格式不正确”。我似乎无法找到这个问题
如何解决此错误?或者是否有更好的替代方案使这项功能有效?
答案 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");
}