티스토리 뷰

Others

[C#] StringComparison 열거형

해구름 2022. 7. 28. 13:23
반응형

Language-Culture Codes

국가별 언어코드에서 대한민국은 ko-KR, 북한은 ko-KP로 표현됩니다. 여기서 앞 ko는 언어코드(한글)을 의미하며 KR, KP는 국가/지역코드로 각각 대한민국(Republic of Korea), 북한(Democratic People's Republic of Korea)을 의미합니다. 다른 예시로 영어-미국(United State)은 en-US, 영어-영국(Great British)은 en-GB를 사용합니다.

C#에서는 이러한 언어, 국가/지역 코드를 바탕으로 문자열을 비교할 수 있습니다. 문자열을 비교할 때 StringComparison 매개변수를 통해서 언어, 국가/지역의 특수성을 어떻게 반영할 지 결정할 수 있습니다.

StringComparison 열거형

  • Ordinal: 언어, 국가/지역 모두 무시하고 유니코드 바이너리 값을 단순 비교합니다.
    다른 옵션에 비해 비교적 성능이 뛰어납니다. 언어, 국가/지역에 따른 특수성을 고려하지 않는다면 이 옵션을 사용하세요.
  • InvariantCulture: 현재 사용자의 언어, 국가/지역을 무시하며 영어(CultureInfo("en"))를 바탕으로 비교합니다.
    예를들어 라틴어 'Æ' (U+00C6)는 영어 알파벳에 포함되지 않는 문자입니다. 영어에서는 'Æ'를 A와 E의 합자로 간주합니다. 따라서 InvariantCulture를 사용하면 라틴어 'Æ'와 알파벳 "AE"는 같은 문자로 취급합니다.
  • CurrentCulture: 현재 사용자의 언어, 국가/지역의 특수성을 모두 고려하여 비교합니다.
    예를들어 현재 사용자의 지역이 덴마크(CultureInfo("da-DK"))라면 라틴어 'Æ'와 알파벳 "AE"는 다른 문자로 취급됩니다. 덴마크에서는 라틴어 'Æ'를 별도의 문자로서 사용하기 때문입니다.

언어, 국가/지역의 특수성을 고려하지 않는다면 StringComparison.Ordinal을 사용하세요. 만약 E-book 리더와 같은 애플리케이션을 개발한다면 언어, 국가/지역의 특수성은 상당히 중요합니다. 따라서 이 경우에는 StringComparison.CurrentCulture를 사용해야합니다. StringComparison.InvariantCulture는 영어권에서 사용하는 프로그램을 개발하지만 국가/지역의 특수성은 무시할 때 사용하게 됩니다.

References

'Others' 카테고리의 다른 글

[C#] Object Clone  (0) 2023.05.24
[C#] CallerMemberName Attribute  (0) 2023.05.19
[Mail] SMTP 프로토콜  (0) 2022.07.07
OIDC(OpenID Connect)와 OAuth 2.0  (0) 2021.07.22
Token 기반 인증 vs Cookie 인증  (0) 2021.07.22
서버 하드웨어 구성  (0) 2021.07.16
실무에서 TDD의 장담점과 의사결정  (0) 2021.01.07
[AndroidStudio] Code Folding  (0) 2020.12.16
댓글