You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CsvHelper时如何忽略CSV文件中的末尾逗号?

解决CsvHelper识别CSV末尾逗号导致列数错误的问题

你遇到的问题可以通过CsvHelper配置中的IgnoreTrailingDelimiters属性直接解决,开启这个配置后,解析器会忽略每行末尾的分隔符,不会将其识别为额外的空列。

修改你的配置代码如下:

string input =
    """
    headerColumn1,headerColumn2,
    dataValue1,dataValue2,
    """;
    
var encoding = Encoding.UTF8;
var ms = new MemoryStream(encoding.GetBytes(input));
var streamReader = new StreamReader(ms);

// 配置中添加 IgnoreTrailingDelimiters = true
var config = new CsvConfiguration(CultureInfo.InvariantCulture)
{
    HasHeaderRecord = true,
    IgnoreTrailingDelimiters = true
};

using var csvReader = new CsvReader(streamReader, config);

csvReader.Read();
var numberOfColumns = csvReader.Parser.Record.Length;
Console.WriteLine(
    $"number of detected columns: {numberOfColumns}"
);
// 此时输出:number of detected columns: 2

这个配置项的作用是告诉CsvHelper的解析器,当行的末尾出现分隔符(这里是逗号)时,不要将其视为一个新列的起始,直接忽略掉,这样就能正确识别出实际的列数。

内容的提问来源于stack exchange,提问作者me.at.coding

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 14:50:01