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

如何使用CSVHelper为每条记录添加首尾竖线分隔符?

解决CSVHelper生成首尾带竖线的竖线分隔文件问题

首先确认你的CSV配置已将分隔符设为竖线:

var config = new CsvConfiguration(CultureInfo.InvariantCulture)
{
    Delimiter = "|",
    QuoteAllFields = false // 避免字段被引号包裹
};

你之前手动写入分隔符导致重复的原因是:WriteRecord会自动在字段之间插入分隔符,但直接写入分隔符作为开头/结尾,会和字段间的分隔符产生冲突。正确的做法是通过写入空字段来触发首尾的分隔符生成,代码如下:

using (var writer = new StreamWriter("output.txt"))
using (var csv = new CsvWriter(writer, config))
{
    foreach (var record in myList)
    {
        // 写入空字段(无引号),触发开头的竖线
        csv.WriteField(string.Empty, shouldQuote: false);
        csv.WriteRecord(record);
        // 写入空字段(无引号),触发结尾的竖线
        csv.WriteField(string.Empty, shouldQuote: false);
        csv.NextRecord();
    }
}

这个逻辑的原理是:

  • 第一个WriteField(string.Empty)输出空内容,随后WriteRecord写入第一个字段时,CSVHelper会自动在空内容和第一个字段之间插入分隔符|,生成记录开头的竖线
  • 写完所有字段后,第二个WriteField(string.Empty)会触发CSVHelper在最后一个字段和空内容之间插入分隔符|,生成记录结尾的竖线
  • 配合shouldQuote: false确保空字段不会被引号包裹,最终输出格式和需求示例一致

内容的提问来源于stack exchange,提问作者bigtoasty

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:12:42