Tag: stringbuilder

如何从格式化的字符串中删除空行?

如何在C#中删除字符串中的空行? 我在C#(winforms)中生成一些文本文件,由于某种原因,有一些空行。 如何在生成字符串后删除它们(使用StringBuilder和TextWrite )。 示例文本文件: THIS IS A LINE THIS IS ANOTHER LINE AFTER SOME EMPTY LINES! 谢谢。

StringBuilder如何在C#内部工作?

StringBuilder如何工作? 它在内部做什么? 它使用不安全的代码吗? 为什么它如此之快(与+运算符相比)?

有趣的OutOfMemoryException与StringBuilder

我需要在循环中不断构建大字符串并将它们保存到数据库中,目前偶尔会产生OutOfMemoryException 。 这里基本上是基于一些数据使用XmlWriter和StringBuilder创建一个字符串。 然后我从外部库调用一个方法,将该xml字符串转换为其他字符串。 之后,转换后的字符串将保存到数据库中。 对于不同的数据,这整个过程在一个循环中重复完成约100次。 字符串本身不是太大(每个低于500kBy)并且在此循环期间进程内存不会增加。 但是,偶尔我会在StringBuilder.Append得到一个OutOfMemeoryExcpetion 。 有趣的是,此exception不会导致崩溃。 我可以捕获该exception并继续循环。 这里发生了什么? 尽管系统中仍有足够的可用内存,为什么我会得到一个OutOfMemoryException ? 这是一些GC堆问题吗? 鉴于我无法绕过转换所有这些字符串,我能做些什么来使这项工作可靠? 我应该强制GC收集吗? 应该将Thread.Sleep放入循环中吗? 我应该停止使用StringBuilder吗? 应该只是在面对OutOfMemoryException时重试?