我有一个字符串(来自外部文本文件),其中包含与现有变量对应的单词。有没有办法用变量的内容替换单词? 也许用{}?
括起来例如,在psudeo代码中,这个:
string var1 = "Works";
string from_text = "It {var1}!";
会导致“It Works!”
编辑:我不知道外部文本文件中使用了哪些变量。可能是示例中的var1,也可能是var24123或int2312。所以,必须是动态的:D
答案 0 :(得分:3)
从C#6.0开始,这实际上是可行的。它被称为string interpolation。大多数示例使用格式字符串,该字符串在编译时已知:
string from_text = $"It {var1}!";
然而,也可以使用FormattableString
生成动态字符串:
var formattableString = new FormattableString() {
Format = "It {var1}!",
Args = new object[] { var1 }
});
string from_text = formattableString.ToString();
答案 1 :(得分:1)
您可以使用:string from_text = string.Format("It {0}!", var1);
答案 2 :(得分:1)
在C#6中,您可以使用新的nameof
运算符:
string var1 = "Works";
string from_text = "It {var1}!";
string replaced = from_text.Replace("{" + nameof(var1) + "}", var1);
但是,我不确定这是多么有用。
答案 3 :(得分:1)
在C#6之前:string from_text = string.Format("It {0}!", var1);
在C#6中:string from_text = $"It {var1}!";