String.Equals的奇怪行为?

3
我有一个字典,它的键是字符串。
其中一个条目的行为很奇怪。对于相同的字符串,它没有匹配到。我猜这可能与String.Equals的行为有关。
即使是String.Equals也返回错误的结果。(我知道String intern的概念,但这似乎是另一个问题)。
请查看图片(观察窗口)以了解此问题。 enter image description here 我正在填充映射字典(来自xml资源文件),如下所示:
var data = XDocument.Parse(str).Element(RootForXMLValidation).Elements().Where(x => x.Attribute("EcbFieldId") != null);
mappings = data.ToDictionary(x => x.Attribute("BoeField").Value.Trim(),
           x => new Mapping { Key = x.Attribute("BoeField").Value.Trim(),
           Type = (MappingType)Enum.Parse(typeof(MappingType), 
           x.Attribute("mappingType").Value), MappingDetail = x });

为什么String.Equals会表现出这种行为?

11
非常抱歉,但即使在您的截图中,这些字符串也是不同的。其中一个是连字号,另一个似乎是短破折号(http://en.wikipedia.org/wiki/Dash)。 - Dykam
你是对的。我在记事本中进行了匹配,两者看起来相同(使用的字体相同)。为了截图,我分享了VS监视窗口,后来意识到了差异。 - Tilak
1个回答

9
< p > key 中的破折号似乎是一个长破折号,而另一个是一个连字符。


你是对的。我在记事本中进行了匹配,两者看起来相同(使用的字体相同)。为了截图,我分享了VS监视窗口,后来意识到了差异。 - Tilak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接