在c#中写入文件时如何用变量显示双引号? [复制]

Posted

技术标签:

【中文标题】在c#中写入文件时如何用变量显示双引号? [复制]【英文标题】:How to show double qoutes with a variable when writing to a file in c#? [duplicate] 【发布时间】:2021-04-11 14:39:12 【问题描述】:

我正在尝试使用 C# 将字符串写入文件,我正在寻找的输出应该是这样的

<meta name="geo.region" content="Asia"/>

为了实现这一点,我已经尝试过这段代码,

writer.WriteLine(@"<meta name=""geo.region"" content="""+MetaTags.Region+"""/>");

但输出是,

<meta name="geo.region" content="Asia/>

“亚洲”后没有双引号

我也试过

 writer.WriteLine(@"<meta name=""geo.region"" content="""+MetaTags.Region+"""/>");

但它显示语法错误

【问题讨论】:

你的代码示例目前是一样的 使用适当的 XML 序列化程序而不是发出原始字符串。 【参考方案1】:

在 C# 中,您可以在双引号之前使用反斜杠而不是双引号:

writer.WriteLine("<meta name=\"geo.region\" content=\"" + MetaTags.Region + "\"/>");

使用字符串插值:

writer.WriteLine($"<meta name=\"geo.region\" content=\"MetaTags.Region\"/>");

它会输出:

<meta name="geo.region" content="region"/>

更多细节:

Strings (C# Programming Guide)

String interpolation in C#

【讨论】:

并不是说这个问题需要任何新的答案,因为它显然是重复的。但我认为你的意思是“反斜杠”,而不是“退格”。【参考方案2】:

为了使用两个双引号在结果中产生一个双引号,字符串文字需要在前面加上@。所以这是一个语法错误:

"""/>"

但这不是:

@"""/>"

只需将@ 添加到您的字符串文字中,就像您已经为其他字符串文字所做的那样:

writer.WriteLine(@"<meta name=""geo.region"" content=""" + MetaTags.Region + @"""/>");

另外,如果这是 C# 的最新版本,您可以使用字符串插值对其进行一些清理:

writer.WriteLine($"<meta name=\"geo.region\" content=\"MetaTags.Region\"/>");

如果您更喜欢反斜杠而不是双双引号。

【讨论】:

以上是关于在c#中写入文件时如何用变量显示双引号? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 R 中显示带引号的文本? [复制]

c#的button加快捷键时如何用下划线显示字母

在电源查询中加载 CSV 时如何处理多个引号?

如何用空格分割字符串,不包括Python中双引号之间的空格? [复制]

如何用 sed 的变量替换单引号字符串? [复制]

win10运行bat文件显示找不到文件路径?