使用字符串插值进行字符串连接

时间:2018-06-01 05:29:42

标签: c# string-interpolation

我有类似下面的内容。

var amount = "$1,000.99";
var formattedamount = string.Format("{0}{1}{0}", "\"", amount);

如何使用字符串插值实现相同的效果?

我试过以下

var formattedamount1 = $"\"{amount}\"";

使用字符串插值有没有更好的方法呢?

4 个答案:

答案 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      

插值字符串是可能包含插值表达式的字符串文字。将插值字符串解析为结果字符串时,带有插值表达式的项目将由表达式结果的字符串表示形式替换。