我遇到了一个我看起来无法解决的stringbuilder问题。为了简化创建以下方法问题:C#Stringbuilder在添加大量文本时损坏内容
private static string TestBigStrings() {
StringBuilder builder = new StringBuilder();
for (int i = 1; i < 1500; i++) {
string line = "This is a line isn't too big but breaks when we add to many of it.";
builder.AppendLine(line);
}
return builder.ToString();
}
它应该只是补充该行1500次,事后其合并为一个字符串并返回它。然而,不仅仅是组合它会破坏内容。在结果中间的某处您可以找到文本:
This is a line isn't too big but breaks when we add to many of it.
This is a line isn't too big but breaks when we add to many of it.
This is a line isn't too big but breaks when we add to many of it.
This is a line isn't too big but breaks when we add to many of ...s a line isn't too big but breaks when we add to many of it.
This is a line isn't too big but breaks when we add to many of it.
This is a line isn't too big but breaks when we add to many of it.
This is a line isn't too big but breaks when we add to many of it.
该项目是一个简单的控制台。我也尝试了所有其他的解决方案,以检查是否这是可能的一些其他的方式,如:
写入文本文件(同腐败和折断早)
其写入存储器流和读取(相同腐败)
使用列表和加入该(相同腐败)
只是使用+ =上一个字符串(相同腐败)
使用string.concat(同腐败)
全体同仁,我问正在运行到同样的问题一样,所以它不应该是PC相关。有人知道这里发生了什么吗?
不能重现它...给我们更多的信息.NET/VS/x86/x64的哪个版本 –
@GeorgeVovos因为这是不可能的,所以特别发生在他所有的同事PC上。 – Sakura
我也跑了代码,问题没有转载 - .NET 4.5。 – SashaDu