我正在使用CsvHelper
中的C#
库读取这样的CSV
文件:
var dataCsvFileReader = File.OpenText(inputFile);
var dataCsvReader = new CsvReader(dataCsvFileReader);
var dataRecords = dataCsvReader.GetRecords<dynamic>();
foreach(dynamic record in dataRecords){
for(int i = 0; i < ???; i++){ //How many columns are there in the record???
Console.WriteLine($"Record {i} value is: {record[i]}");
}
}
从代码中可以看到,我的问题是我不知道记录中有多少列。由于在解析数据之前我不知道数据的结构(我输入的CSV文件始终是不同的),我如何找出有多少列?我尝试查询
dataCsvReader.Context.ColumnCount
,但始终返回0
。 最佳答案
您可以将每个记录转换为List
using (TextReader dataCsvFileReader = File.OpenText(inputFile))
{
using (CsvReader dataCsvReader = new CsvReader(dataCsvFileReader))
{
while (dataCsvReader.Read())
{
var dataRecord = Enumerable.ToList(dataCsvReader.GetRecord<dynamic>());
}
}
}