6

我有一个要发送给许多用户的模板文本(简报文本);在文本中有一些占位符,如{{firstname}}、{{lastname}}等。

.Replace(..)用实际值、连接或RegExp或其他方法替换占位符会更有效 吗?

.NET 语言。

4

2 回答 2

3

由于您将.Replace()多次调用,因此使用它可能更有效StringBuilder.Replace(),因为StringBuilder针对多次修改进行了优化

如果您在占位符的格式方面具有灵活性,我认为DotLiquid将是一个很好的选择。他们可能已经针对这种情况优化了文本处理,尽管它还支持其他高级语法,因此可能存在开销。

于 2013-04-15T21:01:02.190 回答
1

我最近测试了比较标准的 dotnet 方式

  1. string.Replace.Replace.Replace- 内存效率最低,但略快于StringBuilder

  2. StringBuilder.Replace.Replace.Replace2 倍内存效率,string.Replace但速度稍慢

  3. string.Format("{0},{1},{2}", x, y, z)与内存效率相比,内存效率降低了约 20%,StringBuilder但速度提高了 2 倍以上string.Replace.Replace.Replace

于 2019-08-23T19:44:32.623 回答