用字典c替换字符串#

Man*_*x22 0 c# string replace

我需要{text}用字典中的相应值替换所有占位符.

这是我的代码:

var args = new Dictionary<string, string> {
   {"text1", "name"},
   {"text2", "Franco"}
};
saveText(Regex.Replace("Hi, my {text1} is {text2}.", @"\{(\w+)\}", m => args[m.Groups[1].Value]));
Run Code Online (Sandbox Code Playgroud)

问题是:如果输入字符串中的文本不存在于字典中,则会抛出异常,但我宁愿用字符串替换占位符"null".

Luc*_*ski 5

只需扩展你的lambda:

var args = new Dictionary<string, string> {
   {"text1", "name"},
   {"text2", "Franco"}
};

saveText(Regex.Replace("Hi, my {text1} is {text2}.", @"\{(\w+)\}", m => {
    string value;
    return args.TryGetValue(m.Groups[1].Value, out value) ? value : "null";
}));
Run Code Online (Sandbox Code Playgroud)