Эффективное заполнение шаблона

Скажем, у меня есть текстовый шаблон с рядом полей, которые необходимо заполнить:

var template = "hello {$name}. you are {$age} years old. you live in {$location}"

и IDictionary <строка, строка> значений для замены:

key     | value
===================
name    | spender
age     | 38
location| UK

Наивный способ заполнения шаблона может выглядеть примерно так:

var output = template;
foreach(var kvp in templValues)
{
    output = output.Replace(string.format("{{${0}}}", kvp.Key), kvp.Value);
}

Однако это кажется ужасно неэффективным. Есть способ лучше?

9
задан spender 26 January 2012 в 11:01
поделиться