C# 使用 StringBuilder 追加测试
C# append test with StringBuilder
我使用 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();
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');
}
}
我使用 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();
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');
}
}