我有一个模板文本(简报文本)要发送给很多用户;在文本中有一些占位符,例如{{firstname}},{{lastname}}等。
用实际值替换占位符会更有效,
.Replace(..)
串联或RegExp
或其他方法?
.NET语言。
答案 0 :(得分:3)
由于您将多次调用.Replace()
,因此使用StringBuilder.Replace()
可能更有效,因为StringBuilder
为optimized for multiple modifications。
如果您在占位符的格式方面具有灵活性,我认为DotLiquid将是一个很好的候选者。他们可能已针对此方案优化了文本处理,但它也支持其他高级语法,因此可能存在开销。
答案 1 :(得分:1)
我最近测试了标准的dotnet方式
string.Replace.Replace.Replace
-内存效率最低,但比StringBuilder
StringBuilder.Replace.Replace.Replace
的存储效率是string.Replace
的2倍,但速度稍慢
string.Format("{0},{1},{2}", x, y, z)
的存储效率比StringBuilder
低约20%,但比string.Replace.Replace.Replace
快2倍以上