【发布时间】:2018-02-19 07:34:35
【问题描述】:
我有一个 CSV 文件,我需要从中读取所有值。但仅限于最新的最后一行。但我不知道该怎么做。
我现在正在使用流式阅读器,但它会循环遍历整个 CSV 文件,该文件可能非常大。
我需要读取两个不同的 csv 文件(标题相同但位置不同)。
但是如何编辑此代码以仅从最后一行读取?我四处寻找,但找不到与我相同的东西。
这就是我现在的做法:
using (var reader = new StreamReader(path))
{
var headerLine = reader.ReadLine();
var headerValues = headerLine.Split(',');
var serialNumber = headerValues[66];
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(',');
if (values[0] != "Index")
{
var analyseReport = new AnalyseReport();
analyseReport.SerialNumber = serialNumber;
foreach (var item in headerValues)
{
var headerName = item.Trim();
var index = Array.IndexOf(headerValues, item);
switch (headerName)
{
case "Index":
analyseReport.Index = Convert.ToInt32(values[index].Trim());
break;
case "Time":
analyseReport.TimeStamp = Convert.ToDateTime(values[index].Trim());
break;
case "Reading No":
analyseReport.ReadingNo = Convert.ToInt32(values[index].Trim());
break;
case "Duration":
analyseReport.Duration = values[index].Trim();
break;
case "Type":
analyseReport.Type = values[index].Trim();
break;
case "Units":
analyseReport.Units = values[index].Trim();
break;
default:
break;
}
}
analyseReportList.Add(analyseReport);
}
}
return analyseReportList;
}
【问题讨论】:
-
如果你有固定长度的行here 是一个很好的答案。