使用 CsvHelper 时忽略 CSV 文件中的尾随逗号?

问题描述 投票:0回答:1

我需要读取每行末尾带有逗号的 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}"
        );
c# csv csvhelper trailing read-csv
1个回答
0
投票

第一步,您始终可以删除每行的最后一个逗号,例如使用

TrimEnd(',')

© www.soinside.com 2019 - 2024. All rights reserved.