2012-11-23 12 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