如何使用 CSV Helper 在 C# 中逐行读取?
How to use CSV Helper to read line by line in c#?
这是我目前使用的代码,但我并不想特别创建自己的 reader。我的问题是我想逐行读取一个完整的csv文件,但是文件内容会不时改变,所以必须是通用的。
这是我目前使用的,
try
{
var Lines = File.ReadAllLines(path);
var csvRawData = from line in Lines select (line.Split(',')).ToArray();
var csvData = csvRawData.ToList();
return csvData;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
Logger.Log(ex.Message, true);
return null;
}
return csvData 是列表类型。然后我手动将内容从中分离出来。
你说 CsvHelper
,但从你的代码来看,你似乎并没有真正使用它。如果您正在使用它,您可以使用 GetField
方法通过 header 索引名称拉取一个字段。查看文档以获取有关如何使用它的更多信息。
https://joshclose.github.io/CsvHelper/examples/reading/
这是一个逐行阅读的示例,其中第二行与第一行的 'type' 不同:
using (StreamReader reader = new StreamReader(filePath))
{
using (CsvReader csv = new CsvReader(reader))
{
csv.Read();
Type1 sample = new Type1();
sample.Id = csv.GetField<int>(0);
sample.Lines = csv.GetField<int>(1);
csv.Read();
Type2 sample2 = new Type2();
sample2.Angle = csv.GetField<double>(0);
sample2.Distance = csv.GetField<int>(1);
}
}
这是我目前使用的代码,但我并不想特别创建自己的 reader。我的问题是我想逐行读取一个完整的csv文件,但是文件内容会不时改变,所以必须是通用的。
这是我目前使用的,
try
{
var Lines = File.ReadAllLines(path);
var csvRawData = from line in Lines select (line.Split(',')).ToArray();
var csvData = csvRawData.ToList();
return csvData;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
Logger.Log(ex.Message, true);
return null;
}
return csvData 是列表类型。然后我手动将内容从中分离出来。
你说 CsvHelper
,但从你的代码来看,你似乎并没有真正使用它。如果您正在使用它,您可以使用 GetField
方法通过 header 索引名称拉取一个字段。查看文档以获取有关如何使用它的更多信息。
https://joshclose.github.io/CsvHelper/examples/reading/
这是一个逐行阅读的示例,其中第二行与第一行的 'type' 不同:
using (StreamReader reader = new StreamReader(filePath))
{
using (CsvReader csv = new CsvReader(reader))
{
csv.Read();
Type1 sample = new Type1();
sample.Id = csv.GetField<int>(0);
sample.Lines = csv.GetField<int>(1);
csv.Read();
Type2 sample2 = new Type2();
sample2.Angle = csv.GetField<double>(0);
sample2.Distance = csv.GetField<int>(1);
}
}