【问题标题】:Why "\n" is true doesn't compare? [closed]为什么“\n”是真的不比较? [关闭]
【发布时间】:2011-08-18 08:44:36
【问题描述】:

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

【问题讨论】:

  • “xml”的类型是什么?请发布代码并阅读tinyurl.com/so-hints
  • @Jon 我最好的猜测是 XmlNode?​​span>
  • @Oleg:请将其编辑到您的问题中,而不仅仅是提供链接。
  • 好的,现在我们可以看到一些代码,但不足以重现问题。请发布一个简短但完整的程序来演示问题,我们将能够提供更多帮助。

标签: c# xml file compare match


【解决方案1】:

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

我的猜测是调试器中没有出现一些“奇怪的”Unicode 字符......或者监视窗口的行为很奇怪。关注xml.Value.ToCharArray() 将有助于证明这一点。

(顺便说一句,将Dictionary<,> 参数命名为list 非常令人困惑...)

编辑:此外,使用大括号和缩进也会使您的代码更易于遵循...


目前我们无法确定,但我的猜测Value 属性的类型是object,而不是string。这意味着==!= 执行引用比较(记住,运算符是重载,而不是覆盖)。您想要以下的多态行为:

if (xml.Value.Equals("\n"))

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

if ("\n".Equals(xml.Value))

【讨论】:

  • 顺便说一句,给 Dictionary 参数提供名称列表非常令人困惑...),>>>>>>>>>>> 为什么会令人困惑?
  • @Oleg:因为它不是列表,而是字典!我看到“列表”我希望实现IList<T>...
  • 字典类只是一个包含很多 的列表 - 不?
  • @Oleg:不——它是从键到值的映射,而不是值列表。特别是,列表通常维护一个 ordering 并按顺序或按数字 index 访问。 Dictionary<,> 这样的映射通常没有内在的顺序,通过key访问。
猜你喜欢
  • 1970-01-01
  • 2022-01-01
  • 2020-09-04
  • 1970-01-01
  • 2023-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-26
相关资源
最近更新 更多