我有类似下面的内容。
var amount = "$1,000.99";
var formattedamount = string.Format("{0}{1}{0}", "\"", amount);
如何使用字符串插值实现相同的效果?
我试过以下
var formattedamount1 = $"\"{amount}\"";
使用字符串插值有没有更好的方法呢?
答案 0 :(得分:1)
您可以通过以下方式实现同样的目标:
var formattedamount1 = $"\"{amount}\"";
OR
var formattedamount1 = $@"""{amount}""";
它基本上允许您编写string.Format()
,但不是使用带有“占位符”({0}, {1}, .. {N}
)的一个字符串,而是在string
内直接编写/使用您的变量。
请详细了解 String Interpolation (DotNetPerls) , $ - string interpolation ,以全面了解最新情况。
答案 1 :(得分:1)
<强>更新强>
使用字符串插值是否有更好的方法
不,这只是字符串插值,你不能使下面任何更短,更可读
var formattedamount1 = $"\"{amount}\"";
原始回答
$ - string interpolation (C# Reference)
在a生成的文本中包含大括号“{”或“}” 插值字符串,使用两个括号,“{{”或“}}”。更多 信息,请参阅Escaping Braces。
报价只是正常转义
示例强>
string name = "Horace";
int age = 34;
Console.WriteLine($"He asked, \"Is your name {name}?\", but didn't wait for a reply :-{{");
Console.WriteLine($"{name} is {age} year{(age == 1 ? "" : "s")} old.");
<强>输出强>
He asked, "Is your name Horace?", but didn't wait for a reply :-{
Horace is 34 years old.
答案 2 :(得分:1)
只是提供一个选项,如果你想确保在开头和结尾使用相同的引号,你可以使用一个单独的变量:
string quote = "\"";
string amount = "$1,000.99";
string formattedAmount = $"{quote}{amount}{quote}";
我不确定我是否会对此感到烦恼,但这是另一个需要考虑的选择。
答案 3 :(得分:0)
$特殊字符将字符串文字标识为插值字符串。 例如
string name = "Mark";
string surname = "D'souza";
WriteLine($"Name :{name} Surname :{surname}" );//Name :Mark Surname :D'souza
插值字符串是可能包含插值表达式的字符串文字。将插值字符串解析为结果字符串时,带有插值表达式的项目将由表达式结果的字符串表示形式替换。