我有一个要发送给许多用户的模板文本(简报文本);在文本中有一些占位符,如{{firstname}}、{{lastname}}等。
.Replace(..)
用实际值、连接或RegExp
或其他方法替换占位符会更有效
吗?
.NET 语言。
由于您将.Replace()
多次调用,因此使用它可能更有效StringBuilder.Replace()
,因为StringBuilder
它针对多次修改进行了优化。
如果您在占位符的格式方面具有灵活性,我认为DotLiquid将是一个很好的选择。他们可能已经针对这种情况优化了文本处理,尽管它还支持其他高级语法,因此可能存在开销。
我最近测试了比较标准的 dotnet 方式
string.Replace.Replace.Replace
- 内存效率最低,但略快于StringBuilder
StringBuilder.Replace.Replace.Replace
2 倍内存效率,string.Replace
但速度稍慢
string.Format("{0},{1},{2}", x, y, z)
与内存效率相比,内存效率降低了约 20%,StringBuilder
但速度提高了 2 倍以上string.Replace.Replace.Replace