我希望以一种良好的性能方式(我希望)将我的字符串中的命名参数替换为代码中的命名参数,例如,我的字符串:
"Hi {name}, do you like milk?"
如何用代码、正则表达式替换 {name}?要贵吗?您推荐哪种方式?
他们如何在示例 NHibernates HQL 中将 :my_param 替换为用户定义的值?或者在我更喜欢的 ASP.NET (MVC) 路由中,“{controller}/{action}”,new { controller = "Hello", ... }?
最佳答案
您确认正则表达式太昂贵了吗?
正则表达式的成本被大大夸大了。对于这样一个简单的模式,性能会非常好,实际上可能只比直接搜索和替换略逊一筹。另外,在构造正则表达式时,您是否尝试过 Compiled
标志?
也就是说,您不能只使用最简单的方法,即 Replace
吗?
string varname = "name";
string pattern = "{" + varname + "}";
Console.WriteLine("Hi {name}".Replace(pattern, "Mike"));
关于C# 将参数命名为替换为参数值的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/379328/