Тест на добавление C # с StringBuilder - PullRequest
0 голосов
/ 05 июля 2018

Я создаю длинный текст, используя 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();

1 Ответ

0 голосов
/ 05 июля 2018

StringBuilder.AppendLine просто делает следующее:

public StringBuilder AppendLine(string value)
{
    this.Append(value);
    return this.Append(Environment.NewLine);
}

Поскольку Environment.NewLine не может быть установлен, вам остается либо сделать два добавления, либо написать собственный метод расширения, например:

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