我如何内插string?
我想在C#中执行以下操作(来自Python背景):
strVar = "stack" mystr = "This is %soverflow" % (strVar)
如何将string内部的标记replace为外部的值?
string mystr = string.Format("This is {0}overflow", strVar);
你也可以使用命名参数而不是索引。
这已添加为C#6.0(Visual Studio 2015 +)。
例:
var planetName = "Bob"; var myName = "Ford"; var formattedStr = $"Hello planet {planetName}, my name is {myName}!"; // formattedStr should be "Hello planet Bob, my name is Ford!"
这是句法糖:
var formattedStr = String.Format("Hello planet {0}, my name is {1}!", planetName, myName);
其他资源:
C#(v2)讨论的string插值
C#6.0语言预览
您可以使用string.Format
将值放入string中:
private static readonly string formatString = "This is {0}overflow"; ... var strVar = "stack"; var myStr = string.Format(formatString, "stack");
另一种方法是使用C#连接运算符:
var strVar = "stack"; var myStr = "This is " + strVar + "overflow";
如果你正在做很多连接,使用更有效的StringBuilder
类:
var strVar = "stack"; var stringBuilder = new StringBuilder("This is "); for (;;) { stringBuilder.Append(strVar); // spot the deliberate mistake ;-) } stringBuilder.Append("overflow"); var myStr = stringBuilder.ToString();
这没有运营商。 你需要使用string.Format
。
string strVar = "stack"; string mystr = string.Format("This is {0}soverflow", strVar);
不幸的是, string.Format
是一个静态方法,所以你不能简单地写"This is {0}soverflow".Format(strVar)
。 有些人已经定义了一个扩展方法,它允许这个语法。
使用string.Format
:
string mystr = string.Format("This is {0}overflow", "stack");
如果您目前使用C#6.0使用Visual Studio 2015,请尝试以下操作:
var strVar = "stack"; string str = $"This is {strVar} OverFlow";
该function被称为string插值。
你应该使用String.Format()
。 语法有点不同,使用数字占位符代替。
例:
String.Format("item {0}, item {1}", "one", "two")
查看http://msdn.microsoft.com/en-us/library/system.string.format.aspx以获取更多详细信息。;
你有2个选项。 您可以使用String.Format,也可以使用连接运算符。
String newString = String.Format("I inserted this string {0} into this one", oldstring);
要么
String newString = "I inserted this string " + oldstring + " into this one";
使用:
strVar = "stack" mystr = String.Format("This is {0}", strVar);
还有一种方法可以用string来实现占位符,在某些情况下,奇怪的帮助:
mystr = mystr.Replace("%soverflow", strVar);
你可以用Expansive完成这个工作: https : //github.com/anderly/Expansive