我想出了如何使用StreamReader
阅读文本文件。现在我必须创建一个数组并总计index[1]
中的所有值,即价格。
我的数据如下:
黄色出租车,62.12,10/17/16
小鸡,9.50,10/18/16
我目前只有10行,但未来可能会增加更多。
我想添加62.12和9.50,并在txtBox_Total.text = Total.ToString();
这是我目前的代码:
private void btn_CalculateLoadExpenses_Click(object sender, EventArgs e)
{
string currentLine;
// Create StreamReader object to read Exams.txt
StreamReader examsReader = new StreamReader("TravelExpenses.txt");
listBox_Output.Items.Clear();
while (examsReader.EndOfStream == false)
{
currentLine = examsReader.ReadLine();
listBox_Output.Items.Add(currentLine);
}
}
答案 0 :(得分:1)
您可以使用File.ReadAllLines
string[] lines = File.ReadAllLines("TravelExpenses.txt");
然后使用Items.AddRange
listBox_Output.Items.AddRange(lines );
通过拆分和取下面的数字之和
从字符串中取出var Total= lines.Select(line =>line.Split(',')[1]).Select(num =>decimal.Parse(num)).Sum();
txtBox_Total.text = Total.ToString();
答案 1 :(得分:0)
我必须使用StreamReader进行此分配。这是我写的更多代码。由于我的总计不起作用,有些东西仍然不正确。我担心这会使它变得比它需要的更复杂。
private void btn_CalculateLoadExpenses_Click(object sender,EventArgs e) {
string[] purchase = new string[10];
float[] price = new float[10];
int index = 0;
string currentLine;
string[] fields;
float purchaseTotal, total = 0;
// Create StreamReader object to read Exams.txt
StreamReader examsReader = new StreamReader("TravelExpenses.txt");
listBox_Output.Items.Clear();
while (examsReader.EndOfStream == false)
{
currentLine = examsReader.ReadLine();
fields = currentLine.Split(',');
listBox_Output.Items.Add(currentLine);
purchase[index] = fields[0];
price[index] = total;
index++;
purchaseTotal = total;
txt_Box_Total.Text = total.ToString();
}
examsReader.Close();
}