为什么"\n"是真的不能比较?

Sec*_*ret -4 c# xml compare file match

请看这里的场景,请:http://social.microsoft.com/Forums/getfile/3600/ 为什么它不匹配?

Jon*_*eet 7

编辑:好的,现在我们知道它XmlReader.Value,它确实返回一个字符串,这绝对不是问题.我将在下面留下以前的答案以供将来参考.

我的猜测是,有一些"奇怪"的Unicode字符没有显示在调试器中......或者监视窗口的行为很奇怪.戴上手表xml.Value.ToCharArray()将有助于表明这一点.

(顺便说一下,给一个Dictionary<,>参数这个名字list很混乱......)

编辑:此外,使用支撑和缩进将使您的代码更容易遵循...


我们现在无法确定,但我的猜测Value属性是类型object,而不是string.这意味着==!=执行参考比较(运算符被重载,未被覆盖,请记住).你想要的多态行为:

if (xml.Value.Equals("\n"))
Run Code Online (Sandbox Code Playgroud)

或者如果xml.Value可以合法地为null:

if ("\n".Equals(xml.Value))
Run Code Online (Sandbox Code Playgroud)