C#使用StringBuilder追加测试

Sán*_*ani 0 c# stringbuilder newline

我使用StringBuilder创建一个长文本,但我想要新行字符'\n'(Unix模式)而不是'\ r \n',然后我会将整个文本写入文件.

我试图在行之间插入'\n'字符并设置AppendFormat方法但没用.

也许我沿'\n'字符分割这个长文本,然后我将这些行分别写在文件中.

    string rowStart = "\n*****" + from + "|" + to;
    StringBuilder sb = new StringBuilder();
    sb.Append(data[0]);

    for (int i = 1; i < data.Count; i++)
    {
        //sb.AppendFormat("\n{0}", rowStart + data[i]); not work
        sb.Append(rowStart + data[i]);
    }
    //var t = sb.Replace("\r\n","\n"); not work
    return sb.ToString();
Run Code Online (Sandbox Code Playgroud)

Ana*_*nke 5

StringBuilder.AppendLine只执行以下操作:

public StringBuilder AppendLine(string value)
{
    this.Append(value);
    return this.Append(Environment.NewLine);
}
Run Code Online (Sandbox Code Playgroud)

由于无法设置Environment.NewLine,您可以选择执行两次附加操作,也可以编写自己的扩展方法,例如:

public static class StringBuilderExtensions
{
    public static void AppendUnixLine(this StringBuilder builder, string s)
    {
        builder.Append(s);
        builder.Append('\n');
    }
}
Run Code Online (Sandbox Code Playgroud)