【发布时间】:2018-09-11 16:53:53
【问题描述】:
我有一个带有key value pair的字典,我需要使用字符串插值,然后根据命名参数映射字符串。请帮我。
// code removed for brevity
var rawmessage = "Hello my name is {Name}"; // raw message
var dict= new Dictionary<string, object>();
dict.Add("{Name}", response.Name);
我希望能够做类似的事情:
// Pseudo code
$"Hello my name is {Key}", dict;
到目前为止我找到的解决方案:
var message = parameters.Aggregate(message,
(current, parameter) => current.Replace(parameter.Key, parameter.Value.ToString()));
它工作正常,但我的经理真的希望我使用带有字典的字符串插值。我不确定如何实现这一目标。请指导我。
【问题讨论】:
-
字符串插值只是
string.Format周围的语法糖,不能像这样使用预设字符串。 -
@DavidG 如果你有一个带键值的字典和一个带命名参数的字符串,那么你将如何映射它?
-
您的最后一段代码确实是唯一的方法。虽然如果您有很多替换要做,您可能需要考虑使用
StringBuilder来提高性能。 -
现在,为什么要投反对票!说真的!
-
不是来自我,这是一个有效的问题,只是无法实现。