C# 将双引号替换为单引号

C# 将双引号替换为单引号,c#,replace,C#,Replace,我在c#中有以下字符串: ptFirstName返回:“John” 我想把它转换成'John' 我尝试了以下多种变体,但我始终无法用单引号替换双引号: ptFirstName.Replace("\"", "'"); 有谁能启发我吗 我的目标是将其写入XML文件: writer.WriteAttributeString("first",ptFirstName); // where ptFirstName is 'John' in single quotes. 原因 ptFirstName.

我在c#中有以下字符串:

ptFirstName
返回:
“John”

我想把它转换成
'John'

我尝试了以下多种变体,但我始终无法用单引号替换双引号:

ptFirstName.Replace("\"", "'");
有谁能启发我吗

我的目标是将其写入XML文件:

writer.WriteAttributeString("first",ptFirstName);   // where ptFirstName is 'John' in single quotes.
原因

ptFirstName.Replace("\"", "'");
如果
字符串
是不可变的,则不起作用。你需要使用

ptFirstName = ptFirstName.Replace("\"", "'");

相反。这是一个。

我猜您没有在文本框中键入
“John”
,而只是
John
,当您设置断点并在visual studio中查看变量时,您会看到字符串周围有引号

如果是这样的话,那么要意识到引号不是字符串的一部分,只是向您指示值是字符串。它们是由调试器添加的。如果你要做:

Console.WriteLine(ptFirstName);
您将看不到引号。

writer.QuoteChar='\''


有关详细信息,请参阅。

1<代码>替换返回一个新字符串2。为什么要将数据混入
WriteAttributeString
?(无论哪种情况,它都应该“正确”编码。)这是因为我需要SD卡中的这种格式,由一个读取它的设备读取,并寻找单引号-这就是它的方式…所以我想我一直在正确地转换它。然而,当我写入xml文件时,我希望xml文件显示“John”而不是下面的示例中的“John”,我就绊倒了。。。所以也许我的问题应该是,如何使用writer.WriteAttributeString(“first”,ptFirstName)写入我的xml文件;而不是以双引号结束?(我需要这个,因为我正在写入的SD卡会被另一个需要单引号格式的设备读取。)
Console.WriteLine(ptFirstName);