C# 在字符串中使用双引号

C# 在字符串中使用双引号,c#,xml,string,concatenation,C#,Xml,String,Concatenation,这是一个愚蠢的问题,可能因为时间太晚而把我搞糊涂了,但为什么下面的代码在我尝试使用双引号时也在后面加斜杠: C#: 私有列表数据列表; private int ShowAuditLogForPrimaryID{get;set;} 私有字符串xmlString; 私有数据集_数据集; SqlDataReader=sqlCommand.ExecuteReader(); dataList=新列表(); while(reader.Read()) { 对于(int i=0;i

这是一个愚蠢的问题,可能因为时间太晚而把我搞糊涂了,但为什么下面的代码在我尝试使用双引号时也在后面加斜杠:

C#:

私有列表数据列表;
private int ShowAuditLogForPrimaryID{get;set;}
私有字符串xmlString;
私有数据集_数据集;
SqlDataReader=sqlCommand.ExecuteReader();
dataList=新列表();
while(reader.Read())
{
对于(int i=0;i
它在字符串中包含反斜杠,这使得我的xml阅读器无法读取它


非常感谢您的帮助。提前感谢!

您的代码看起来很好,只是在编写变量之前使用了变量。如果您想查看其中的内容,请尝试将字符串打印到控制台;如果您在调试器中查看,调试器将再次尝试转义引号

一般来说,尽量避免编写这样的代码。您可以通过以下方法使代码更清晰:

首先,明智地使用常量:

const string quote = "\""; 
const string space = " ";
const string equals = "=";
xmlString =  Name + equals + space + quote + dataList[i].ToString() + quote + space;
现在读起来容易多了,因为这里没有所有的引用

其次,不需要调用
ToString
。如果需要,字符串串联逻辑将自动调用
ToString

第三,明智地使用
String.Format

const string xmlAttributeFormat = "{0} = \"{1}\" ";
string xmlString = String.Format(xmlAttributeFormat, Name, dataList[i]);

您的代码看起来很好,除了在写入变量之前使用了变量之外。如果您想查看其中的内容,请尝试将字符串打印到控制台;如果您在调试器中查看,调试器将再次尝试转义引号

一般来说,尽量避免编写这样的代码。您可以通过以下方法使代码更清晰:

首先,明智地使用常量:

const string quote = "\""; 
const string space = " ";
const string equals = "=";
xmlString =  Name + equals + space + quote + dataList[i].ToString() + quote + space;
现在读起来容易多了,因为这里没有所有的引用

其次,不需要调用
ToString
。如果需要,字符串串联逻辑将自动调用
ToString

第三,明智地使用
String.Format

const string xmlAttributeFormat = "{0} = \"{1}\" ";
string xmlString = String.Format(xmlAttributeFormat, Name, dataList[i]);

是否确实要添加反斜杠,请尝试打印字符串,因为调试器将在字符串中显示反斜杠。什么是示例输出?不是,您犯了一些错误。您是否正在查看监视窗口中的值(在这种情况下,是VS调试器执行插入操作)你确定它实际上在字符串中吗?调试器经常显示转义字符串。你能发布你的实际代码吗?你甚至无法编译的代码。你确定它正在添加反斜杠,请尝试打印字符串,因为调试器会在字符串中显示反斜杠。什么是示例输出?它没有,你犯了一些错误。Are您正在查看监视窗口中的值(在这种情况下,执行插入的是VS调试器)你确定它实际上在字符串中吗?调试器通常会显示转义字符串。你能发布你的实际代码吗?你甚至无法编译的代码。这太棒了@EricLippert!你总是有很好的答案!谢谢你的帮助。:)文本可视化工具可以显示字符串而不转义。只需单击其中一个窗口中的字符串即可dows并按enter键可在文本可视化工具中查看字符串。如有必要,请关闭换行。这太棒了@EricLippert!您总是有很好的答案!感谢您的帮助。:)文本可视化工具可以显示字符串而无需转义。在其中一个监视窗口中单击字符串,然后按enter键可在文本可视化工具中查看字符串r、 如有必要,请关闭包装。