我有一个字符串(来自外部文本文件),其中包含与现有变量相对应的单词。有没有办法用变量的内容替换单词? 也许通过用{}括起单词?C#将部分字符串视为var
例如,在psudeo代码,这: “它工作的”
string var1 = "Works";
string from_text = "It {var1}!";
会导致
编辑:我不知道在外部文本文件中使用了哪些变量。可以像在这个例子中那样是var1,也可以是var24123或者int2312。所以,必须是动态的:D
我有一个字符串(来自外部文本文件),其中包含与现有变量相对应的单词。有没有办法用变量的内容替换单词? 也许通过用{}括起单词?C#将部分字符串视为var
例如,在psudeo代码,这: “它工作的”
string var1 = "Works";
string from_text = "It {var1}!";
会导致
编辑:我不知道在外部文本文件中使用了哪些变量。可以像在这个例子中那样是var1,也可以是var24123或者int2312。所以,必须是动态的:D
从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();
你可以使用:string from_text = string.Format("It {0}!", var1);
大多数示例与在编译时已知的格式字符串工作在C#6中,您可以使用新的nameof
运算符:
string var1 = "Works";
string from_text = "It {var1}!";
string replaced = from_text.Replace("{" + nameof(var1) + "}", var1);
但是我不确定这是多么有用。
在C预先#6:string from_text = string.Format("It {0}!", var1);
在C#6:string from_text = $"It {var1}!";
路线插值也正是我想要的东西:d非常感谢! – iScripters