using static System.Console ;
using System.Collections .Generic ;
public class Program {
public static void Main( ) {
var parametros = new List< Parametro> ( ) {
new Parametro( ) {
Nome = "parametro1" ,
Valor = "Programando em C#"
} ,
new Parametro( ) {
Nome = "parametro2" ,
Valor = "preciso de ajuda!"
}
} ;
var texto = "Texto dinâmico {{parametro1}} , mais um pedaço do texto {{parametro2}}" ;
foreach ( var item in parametros) texto = texto.Replace ( "{{" + item.Nome .Trim ( ) + "}}" , item.Valor ) ;
WriteLine( texto) ;
WriteLine( texto.Interpolate ( parametros) ) ;
}
}
public static class StringExt {
public static string Interpolate( this string text, List< Parametro> parameters) {
foreach ( var item in parameters) text = text.Replace ( "{{" + item.Nome .Trim ( ) + "}}" , item.Valor ) ;
return text;
}
}
public class Parametro {
public string Nome;
public string Valor;
}
//https://pt.stackoverflow.com/q/133419/101
dXNpbmcgc3RhdGljIFN5c3RlbS5Db25zb2xlOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCQkJCQkKcHVibGljIGNsYXNzIFByb2dyYW0gewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKSB7CgkJdmFyIHBhcmFtZXRyb3MgPSBuZXcgTGlzdDxQYXJhbWV0cm8+KCl7CgkJICAgIG5ldyBQYXJhbWV0cm8oKXsKCQkJICAgIE5vbWUgPSAicGFyYW1ldHJvMSIsCgkJCSAgICBWYWxvciA9ICJQcm9ncmFtYW5kbyBlbSBDIyIKCQkgICAgfSwKCQkgICAgbmV3IFBhcmFtZXRybygpewoJCQkgICAgTm9tZSA9ICJwYXJhbWV0cm8yIiwKCQkJICAgIFZhbG9yID0gInByZWNpc28gZGUgYWp1ZGEhIgoJCSAgICB9CgkJfTsKCQl2YXIgdGV4dG8gPSAiVGV4dG8gZGluw6JtaWNvIHt7cGFyYW1ldHJvMX19ICwgbWFpcyB1bSBwZWRhw6dvIGRvIHRleHRvIHt7cGFyYW1ldHJvMn19IjsKCQlmb3JlYWNoICh2YXIgaXRlbSBpbiBwYXJhbWV0cm9zKSB0ZXh0byA9IHRleHRvLlJlcGxhY2UoInt7IiArIGl0ZW0uTm9tZS5UcmltKCkgKyAifX0iLCBpdGVtLlZhbG9yKTsKCQlXcml0ZUxpbmUodGV4dG8pOwoJCVdyaXRlTGluZSh0ZXh0by5JbnRlcnBvbGF0ZShwYXJhbWV0cm9zKSk7Cgl9Cn0KCnB1YmxpYyBzdGF0aWMgY2xhc3MgU3RyaW5nRXh0IHsKCXB1YmxpYyBzdGF0aWMgc3RyaW5nIEludGVycG9sYXRlKHRoaXMgc3RyaW5nIHRleHQsIExpc3Q8UGFyYW1ldHJvPiBwYXJhbWV0ZXJzKSB7CgkJZm9yZWFjaCAodmFyIGl0ZW0gaW4gcGFyYW1ldGVycykgdGV4dCA9IHRleHQuUmVwbGFjZSgie3siICsgaXRlbS5Ob21lLlRyaW0oKSArICJ9fSIsIGl0ZW0uVmFsb3IpOwoJCXJldHVybiB0ZXh0OwkJCgl9Cn0KCnB1YmxpYyBjbGFzcyBQYXJhbWV0cm8gewoJcHVibGljIHN0cmluZyBOb21lOwoJcHVibGljIHN0cmluZyBWYWxvcjsKfQoKLy9odHRwczovL3B0LnN0YWNrb3ZlcmZsb3cuY29tL3EvMTMzNDE5LzEwMQ==