>백엔드 개발 >C++ >.NET에서 대/소문자를 구분하지 않는 문자열 비교를 효율적으로 수행하는 방법은 무엇입니까?

.NET에서 대/소문자를 구분하지 않는 문자열 비교를 효율적으로 수행하는 방법은 무엇입니까?

DDD
DDD원래의
2025-01-19 12:56:10698검색

How to Perform Case-Insensitive String Comparisons in .NET Efficiently?

.NET에서 대소문자를 구분하지 않는 문자열 비교

대소문자를 구분하지 않는 문자열 비교를 수행하는 것은 많은 프로그래밍 작업에서 매우 중요합니다. 이 기사에서는 이 문제를 효율적으로 처리하는 방법을 살펴보겠습니다.

목표는 다음 코드 줄에서 대소문자를 무시하도록 만드는 것입니다.

<code>drUser["Enrolled"] = (enrolledUsers.FindIndex(x => x.Username == (string)drUser["Username"]) != -1);</code>

Equals 방법과 StringComparison.OrdinalIgnoreCase을 사용하면 작동하는 것 같습니다.

<code>x.Username.Equals((string)drUser["Username"], StringComparison.OrdinalIgnoreCase)));</code>

그러나 FindIndex 표현식 내에서 이 방법을 사용하면 예상한 결과가 생성되지 않습니다.

가장 큰 문제는 x.Username.Equals의 사용입니다. 이 메서드는 내부적으로 대소문자를 구분하지 않는 비교를 처리하지만 일치하는 요소의 인덱스를 반환하지 않습니다.

.NET 대소문자 구분 문자열 비교 모범 사례

.NET에서 대소문자를 구분하지 않는 문자열 비교를 올바르게 수행하려면 String.Compare 메서드와 StringComparison.OrdinalIgnoreCase:

을 사용하는 것이 좋습니다.
<code>String.Compare(x.Username, (string)drUser["Username"], StringComparison.OrdinalIgnoreCase) == 0</code>

또는 String.Equals 메서드와 StringComparison.OrdinalIgnoreCase 플래그를 사용할 수 있습니다.

<code>String.Equals(x.Username, (string)drUser["Username"], StringComparison.OrdinalIgnoreCase)</code>

MSDN에서는 문자열 동일성을 테스트하고 문자열을 정렬하는 데 각각 다음 방법을 권장합니다.

  • String.Equals: 동등성 테스트용
  • String.CompareString.CompareTo:는 정렬에 사용됩니다

위 내용은 .NET에서 대/소문자를 구분하지 않는 문자열 비교를 효율적으로 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.