C#将字符串的一部分视为var

时间:2015-08-13 17:27:48

标签: c# string replace

我有一个字符串(来自外部文本文件),其中包含与现有变量对应的单词。有没有办法用变量的内容替换单词? 也许用{}?

括起来

例如,在psudeo代码中,这个:

string var1 = "Works";
string from_text = "It {var1}!";

会导致“It Works!”

编辑:我不知道外部文本文件中使用了哪些变量。可能是示例中的var1,也可能是var24123或int2312。所以,必须是动态的:D

4 个答案:

答案 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}!";