C# 使用字符串插值的字符串连接

C# 使用字符串插值的字符串连接,c#,string-interpolation,C#,String Interpolation,我有下面这样的东西 var amount = "$1,000.99"; var formattedamount = string.Format("{0}{1}{0}", "\"", amount); 如何使用字符串插值实现相同的效果 我试着像下面一样 var formattedamount1 = $"\"{amount}\""; 使用字符串插值有更好的方法吗?通过执行以下操作可以实现相同的效果: var formattedamount1 = $"\"{amount}\""; 或 它基本上允

我有下面这样的东西

var amount = "$1,000.99";
var formattedamount = string.Format("{0}{1}{0}", "\"", amount);
如何使用字符串插值实现相同的效果

我试着像下面一样

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

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

通过执行以下操作可以实现相同的效果:

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

它基本上允许您编写
string.Format()
,但您不是使用带有“占位符”的字符串(
{0}、{1}、..{N}
),而是直接在
字符串中编写/使用变量


请阅读更多有关的信息,以全面了解发生了什么。

通过以下操作可以实现同样的效果:

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

它基本上允许您编写
string.Format()
,但您不是使用带有“占位符”的字符串(
{0}、{1}、..{N}
),而是直接在
字符串中编写/使用变量


请阅读更多关于的信息,以全面了解发生了什么。

更新

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.");
有没有更好的方法使用字符串插值来实现这一点

不,这只是字符串插值,你不能让下面的内容变得更短,更可读

var formattedamount1 = $"\"{amount}\"";
原始答案

将大括号“{”或“}”包含在 插值字符串,使用两个大括号“{{”或“}}”。更多 有关详细信息,请参见大括号

引号只是正常转义

示例

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.

更新

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.");
有没有更好的方法使用字符串插值来实现这一点

不,这只是字符串插值,你不能让下面的内容变得更短,更可读

var formattedamount1 = $"\"{amount}\"";
原始答案

将大括号“{”或“}”包含在 插值字符串,使用两个大括号“{{”或“}}”。更多 有关详细信息,请参见大括号

引号只是正常转义

示例

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.

仅提供一个选项,如果要确保在开始和结束时使用相同的报价,可以使用单独的变量:

string quote = "\"";
string amount = "$1,000.99";
string formattedAmount = $"{quote}{amount}{quote}";

我不确定我会不会亲自考虑,但这是另一个选择。

< P>只要给出一个选项,如果你想确保在开始和结束时都使用相同的引号,你可以使用一个单独的变量:

string quote = "\"";
string amount = "$1,000.99";
string formattedAmount = $"{quote}{amount}{quote}";


我不确定我会不会亲自去处理这个问题,但这是另一个选择。

什么是期望的输出?Gielad Green,我想用引号括起来,这样就不会在CSV文件中的多个单元中填充。@ PrasADKANABARTHI,你在第一个例子中所做的,甚至不会编译。请check@PrasadKanaparthi您可以在下面检查我的答案。需要什么样的输出?Gilead green,我希望用引号括起来,这样就不会在CSV文件的多个单元格中填充该数量。@PrasadKanaparthi您在第一个示例中的内容甚至不会编译。@SeM,现在是了。请check@PrasadKanaparthi你可以在下面检查我的答案。@GiladGreen那里肯定有些混乱though@TheGeneral,有什么混淆。@PrasadKanaparthi
var formattedamount1=$“{{amount}{amount}”
line@TheGeneral这一行-“如何使用字符串插值实现相同的效果?”@PrasadKanaparthi问题是why@GiladGreen那里确实有些混乱though@TheGeneral,有什么混淆。@PrasadKanaparthi
var formattedamount1=$“{{amount}{amount}”
line@TheGeneral这句话是“我如何使用字符串插值实现相同的效果?”@PrasadKanaparthi问题是为什么