我有一个字符串,我需要做一些替换。我有一个Dictionary<string, string>
,我有定义的搜索替换对。我已经创建了以下扩展方法来执行此操作:用字典替换C#字符串
public static string Replace(this string str, Dictionary<string, string> dict)
{
StringBuilder sb = new StringBuilder(str);
return sb.Replace(dict).ToString();
}
public static StringBuild Replace(this StringBuilder sb,
Dictionary<string, string> dict)
{
foreach (KeyValuePair<string, string> replacement in dict)
{
sb.Replace(replacement.Key, replacement.Value);
}
return sb;
}
有没有更好的方法来做到这一点?
伟大的答案。我认为你的提议实际上会更好,然后迭代整个词典,因为正则表达式只会替换找到的记号。它不会检查每一个可能在里面。所以如果我在输入字符串中有一个大的字典和少量的标记,实际上可以给我的应用程序一个提升。 – RaYell 2009-08-05 08:28:39
非常有用。我将它重构为正则表达式的扩展方法,我无法在评论中显示,所以会在下面添加一些额外的答案。 – 2013-03-20 16:20:59
如果找不到密钥,这将引发异常。 – Axel 2017-01-15 05:54:38