-4

如何遍历文本文件以从文本文件的内容创建六个数组。例如,文本文件看起来像这样,但有更多行(没有标题)可能有 200 行

top_speed average_speed cadence altitude heart_rate power

       84            73       0     -124          0    50
       86           179       84    -125        121  3893

每个都有一个数组会很好。所以,例如

top_speed = 84 + 86 : average_speed = 73 + 179 ...(以此类推)

最好的方法是什么?

4

2 回答 2

0

您可以创建一个Record类,然后使用一个简单的 LINQ 查询:

var records = File.ReadLines("file.txt")
    .Select(line =>
        {
            string[] parts = line.Split('\t');
            return new Record
                {
                    TopSpeed = int.Parse(parts[0]),
                    AverageSpeed = int.Parse(parts[1]),
                    Cadence = int.Parse(parts[2]),
                    Altitude = int.Parse(parts[3]),
                    HeartRate = int.Parse(parts[4]),
                    Power = int.Parse(parts[5])
                };
        }).ToArray();

这将为您提供一堆记录,原始文件中的每行一个。如果您想检查所有 HeartRates 以构建直方图或图形或其他任何内容,您可以像这样获取它们:

var allHeartRates = records.Select(rec => rec.HeartRate);
于 2013-02-28T23:51:13.653 回答
0

无论如何,如果那是家庭作业,下面的代码将无济于事:) 但如果不是家庭作业,您将了解如何使用 LINQ 解析此类文件

var items = 
   File.ReadAllLines(filename) // read lines from file
       .Select(line => line.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries)
                           .Select(Int32.Parse) 
                           .ToArray()) // convert each line to array of integers
       .Select(values => new {
            TopSpeed = values[0],
            AverageSpeed = values[1],
            Cadence = values[2],
            Altitude = values[3],
            HeartRate = values[4],
            Power = values[5]
       }); // create anonymous object with nice strongly-typed properties

int[] topSpeeds = items.Select(i => i.TopSpeed).ToArray();
于 2013-02-28T23:40:07.843 回答