我需要读取每行末尾带有逗号的 CSV 文件:
column1,column2, // header
value1,value2, // values
请注意,CSV 文件只有两列。然而末尾的逗号让
CsvHelper
认为有 3 列。是否有任何选项可以告诉 CsvHelper
忽略结尾的逗号?
// embedded file content in code to make this example complete
// and easy to execute/test for others
string input =
"""
headerColumn1,headerColumn2,
dataValue1,dataValue2,
""";
var encoding = Encoding.UTF8;
var ms = new MemoryStream(encoding.GetBytes(input));
var streamReader = new StreamReader(ms);
var config = new CsvConfiguration(CultureInfo.InvariantCulture)
{
HasHeaderRecord = true,
};
using var csvReader = new CsvReader(streamReader, config);
csvReader.Read();
var numberOfColumns = csvReader.Parser.Record.Length;
Console.WriteLine
(
// output: number of detected columns: 3
// note that the input only contains two columns
// and a trailing comma
$"number of detected columns: {numberOfColumns}"
);
第一步,您始终可以删除每行的最后一个逗号,例如使用
TrimEnd(',')
。