如何循环文本文件以从文本文件的内容创建六个数组。 例如,文本文件看起来像这样但有更多行(没有标题)可能有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 ...(依此类推)
最好的方法是什么?
答案 0 :(得分: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();
答案 1 :(得分: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);