创建使用StreamReader获得的数组和总值

时间:2016-11-26 18:49:00

标签: c# visual-studio

我想出了如何使用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);
    }
}

2 个答案:

答案 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();
    }