使用c#读取网格中单独的数据行

时间:2015-11-30 22:37:10

标签: c# .net

给出一个类似于

的数据文本文件
  • 21,7,11
  • 20,10,12
  • 17,7,18

这些代表高度,温度和碳百分比。

我已使用system.io将该文件读入.txt文件。它是否正确?从这里我将如何计算最高温度?

 {
        string s;
        System.IO.StreamReader inputFile = new System.IO.StreamReader(DataFile);
        s = inputFile.ReadLine();
        int noDataLines = int.Parse(s);
 }

2 个答案:

答案 0 :(得分:0)

您需要阅读所有行并比较每个值以找出最高温度。 应该做下面的事情(未经测试的代码!)。此代码中有很多假设,您可能需要根据自己的情况进行更改。

{    
    string s;
    int maxValue=-1, temp=-1;
    using(System.IO.StreamReader in = new System.IO.StreamReader(DataFile))
    {
        while (in.Peek() >= 0) 
        {
            s = in.ReadLine();
            if(int.tryParse(s.split(",")[1], out temp)
            {
                if(temp>maxValue)
                   maxValue = temp;
            }
        }

    }
}

答案 1 :(得分:0)

您很可能想要创建一个二维列表或数组,在本例中我使用的是列表。

{
    List<List<int>> intList = new List<int>(); // This creates a two dimensional list.
    System.IO.StreamReader inputFile = new System.IO.StreamReader(DataFile);
    string line = inputFile:ReadLine();
    while (line != null) // Iterate over the lines in the document.
    {
        intList.Add( // Adding a new row to the list.
            line.Split(',').Select(int.Parse).ToList()
            // This separates the line by commas, and turns it into a list of integers.
        );
        line = inputFile:ReadLine(); // Move to the next row.
    }
}

我承认这当然不是一种非常简洁的方法,但它相对简单。

要访问它,请执行以下操作:

int element = intList[1, 2]; // Accessing 2nd row, 3rd column.