2012-09-27 2 views
3

비교? AA는 SA보다 작으므로 -1이되어서는 안됩니까? 내가 .NET에게 덴마크 문화 "AA"4문자열 내가 1</p> <p>반드시이 잘못의 결과를 얻을 내 직접 실행 창</p> <pre><code>String.Compare("AA", "SA"); </code></pre> <p>에 오류

+1

나는 -1 : http://rextester.com/WUDD T41321 – Jamiec

+0

그게 나에게 혼란 스럽다. 왜 그것이 잘못된 결과를 돌려주고 있는지 이해할 수 없다. – pengibot

+0

culture 문제가되어야합니다. – Habib

답변

7

를 실행하고

는 단일 문자 "A"로 취급 알파벳은 "Z"뒤에 오는됩니다.

CultureInfo cultureInfo = CultureInfo.GetCultureInfo("da-DK"); 
int comparision = String.Compare("AA", "SA", false, cultureInfo); 
Console.WriteLine(comparision); 

결과 :

1 

당신이 고정 문화권 (또는 당신이 원하는 것을 정렬 순서가 특정 문화)를 사용하여 원하는 결과를 얻으려면 :

CultureInfo cultureInfo = CultureInfo.InvariantCulture; 
int comparision = String.Compare("AA", "SA", false, cultureInfo); 
Console.WriteLine(comparision); 

결과 :

-1 
+0

그게 다야! 내 문화를 확인하고 그것은 덴마크어 lol로 설정되어 있었다 나는 미쳐 가고 있다고 생각했다 – pengibot

+3

그냥 [this] (http://rextester.com/CRK15034)가 '1'을 반환 한 모든 문화권을 찾도록 썼다. – Jamiec