2015-08-13 98 views
1

我有一个字符串(来自外部文本文件),其中包含与现有变量相对应的单词。有没有办法用变量的内容替换单词? 也许通过用{}括起单词?C#将部分字符串视为var

例如,在psudeo代码,这: “它工作的”

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

会导致

编辑:我不知道在外部文本文件中使用了哪些变量。可以像在这个例子中那样是var1,也可以是var24123或者int2312。所以,必须是动态的:D

回答

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(); 
+0

路线插值也正是我想要的东西:d非常感谢! – iScripters

1

你可以使用:string from_text = string.Format("It {0}!", var1);

1

大多数示例与在编译时已知的格式字符串工作在C#6中,您可以使用新的nameof运算符:

string var1 = "Works"; 
string from_text = "It {var1}!"; 
string replaced = from_text.Replace("{" + nameof(var1) + "}", var1); 

但是我不确定这是多么有用。

1

在C预先#6:string from_text = string.Format("It {0}!", var1);
在C#6:string from_text = $"It {var1}!";