2012-11-23 13 views
3

我有一个字符串作为字符串的键。String.Equals的奇怪行为?

一个项目有特殊的行为。对于相同的字符串,它不匹配。我想这与String.Equals行为有关。

即使String.Equals返回错误的结果。 (我知道字符串实习生的概念,但这似乎是不同的问题)。

检查问题的图像(观察窗口)。 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

+0

你说得对。我已经在记事本中匹配它,两者看起来都是相同的(在我使用的字体中)。为了截图的缘故,我分享了VS观看窗口,后来意识到了这个区别。 – Tilak

回答

9

key中的破折号似乎是一个破折号,而另一个是连字符。

+0

你是对的。我已经在记事本中匹配它,两者看起来都是相同的(在我使用的字体中)。为了截图的缘故,我分享了VS观看窗口,后来意识到了这个区别。 – Tilak