如何替换StringBuilder对象的全部内容?
替换StringBuilder全部内容的方案
直接给你两种靠谱的做法,根据场景选:
方法1:清空后追加(推荐,适合需保留原实例的场景)
如果这个StringBuilder实例还被其他地方引用,不能重新创建对象,就先清空现有内容,再追加新字符串:
// sb是你的StringBuilder对象,newContent是要替换成的新字符串 sb.Clear(); sb.Append(newContent);
这个方法效率最高,不需要额外生成中间字符串。
方法2:重新实例化(适合仅自己持有实例的场景)
如果只有你自己在用这个StringBuilder,没有其他依赖引用,直接new一个新实例赋值就行:
sb = new StringBuilder(newContent);
这种写法更简洁,但要注意:如果其他代码还拿着原来的sb实例引用,那它们看不到新内容。
不推荐的做法
别用sb.Replace(sb.ToString(), newContent),这种方式需要先把现有内容转成字符串再替换,多了不必要的开销,完全不如上面两种方法高效。
内容的提问来源于stack exchange,提问作者KWallace
相关产品推荐
相关产品推荐

