2012-11-23 2 views
3

문자열이 키 인 사전이 있습니다.String.Equals의 이상한 동작?

하나의 항목에는 고유 한 동작이 있습니다. 동일한 문자열의 경우 일치하지 않습니다. String.Equals 동작과 관련이 있다고 생각합니다.

심지어 String.Equals가 잘못된 결과를 반환합니다. (나는 String intern 개념을 알고 있지만 이것은 다른 이슈로 보인다).

이미지 (감시 창)에서 문제를 확인하십시오. String.Equals 이런 식으로 행동하는 이유 enter image description here

나는

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 }); 

로 (XML 리소스 파일에서) 매핑 사전을 작성하고?

+11

죄송하지만 스크린 샷에서도 문자열이 다릅니다. 하나는 하이픈 - 마이너스이고, 다른 하나는 en 대시처럼 보입니다 (http://en.wikipedia.org/wiki/Dash) – Dykam

+0

당신 말이 맞습니다. 메모장에서이 두 문자를 모두 일치 시켰습니다. 두 문자가 같은 글꼴로 나타납니다. 스크린 샷을 위해 VS 시계 창을 공유하고 나중에 차이점을 깨달았습니다. – Tilak

답변

9

key의 대시는 em 대시 인 반면 다른 하나는 하이픈 인 것 같습니다.

+0

당신이 옳습니다. 메모장에서이 두 문자를 모두 일치 시켰습니다. 두 문자가 같은 글꼴로 나타납니다. 스크린 샷을 위해 VS 시계 창을 공유하고 나중에 차이점을 깨달았습니다. – Tilak