2015-08-13 97 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}!";