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

使用LINQtoCSV写入CSV文件末尾出现CR LF,TrimEnd方法是否有效?

问题解答

直接用.TrimEnd('\r', '\n')没法解决这个问题——因为你当前是通过csvContext.Write直接把数据写入文件,没有机会在它完成写入后对输出内容调用这个方法。

给你两个靠谱的解决办法:

方法1:修改LINQtoCSV的配置(推荐)

LINQtoCSV的CsvFileDescription类里有个LastLineHasNewLine属性,默认是true,会在文件最后一行末尾添加换行符。把它设为false就能直接避免这个问题:

var csvFileDescription = new CsvFileDescription
{
    FirstLineHasColumnNames = true,
    SeparatorChar = ',',
    LastLineHasNewLine = false // 新增这一行,禁用末尾换行
};

方法2:先写入内存流再处理内容

如果你的LINQtoCSV版本没有LastLineHasNewLine属性,可以先把内容写入内存流,再对字符串做Trim处理后写入文件:

var listSettings = new List<Wifi_User>
{
    new Wifi_User
    {
        SSID = "id_112",
        password = "guest"
    }
};

var csvFileDescription = new CsvFileDescription
{
    FirstLineHasColumnNames = true,
    SeparatorChar = ','
};

var csvContext = new CsvContext();
using (var memoryStream = new MemoryStream())
{
    // 先写入内存流
    csvContext.Write(listSettings, memoryStream, csvFileDescription);
    memoryStream.Position = 0;
    
    // 将流转为字符串并去除末尾的换行符
    using (var streamReader = new StreamReader(memoryStream))
    {
        string content = streamReader.ReadToEnd().TrimEnd('\r', '\n');
        // 写入文件
        File.WriteAllText("D:\\WIFICRED.CSV", content);
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 11:05:21