CompareInfo 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
문화권 구분 문자열 비교를 위한 메서드 집합을 구현합니다.
public ref class CompareInfo
public ref class CompareInfo sealed : System::Runtime::Serialization::IDeserializationCallback
public ref class CompareInfo : System::Runtime::Serialization::IDeserializationCallback
public class CompareInfo
public sealed class CompareInfo : System.Runtime.Serialization.IDeserializationCallback
public class CompareInfo : System.Runtime.Serialization.IDeserializationCallback
[System.Serializable]
public class CompareInfo : System.Runtime.Serialization.IDeserializationCallback
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class CompareInfo : System.Runtime.Serialization.IDeserializationCallback
type CompareInfo = class
type CompareInfo = class
interface IDeserializationCallback
[<System.Serializable>]
type CompareInfo = class
interface IDeserializationCallback
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CompareInfo = class
interface IDeserializationCallback
Public Class CompareInfo
Public NotInheritable Class CompareInfo
Implements IDeserializationCallback
Public Class CompareInfo
Implements IDeserializationCallback
- 상속
-
CompareInfo
- 특성
- 구현
예제
다음 예제에서는 개체와 연결된 개체가 CompareInfo 문자열 비교에 CultureInfo 미치는 영향을 보여 줍니다.
using namespace System;
using namespace System::Text;
using namespace System::Globalization;
int main()
{
array<String^>^ sign = gcnew array<String^> { "<", "=", ">" };
// The code below demonstrates how strings compare
// differently for different cultures.
String^ s1 = "Coté";
String^ s2 = "coté";
String^ s3 = "côte";
// Set sort order of strings for French in France.
CompareInfo^ ci = (gcnew CultureInfo("fr-FR"))->CompareInfo;
Console::WriteLine(L"The LCID for {0} is {1}.", ci->Name, ci->LCID);
// Display the result using fr-FR Compare of Coté = coté.
Console::WriteLine(L"fr-FR Compare: {0} {2} {1}",
s1, s2, sign[ci->Compare(s1, s2, CompareOptions::IgnoreCase) + 1]);
// Display the result using fr-FR Compare of coté > côte.
Console::WriteLine(L"fr-FR Compare: {0} {2} {1}",
s2, s3, sign[ci->Compare(s2, s3, CompareOptions::None) + 1]);
// Set sort order of strings for Japanese as spoken in Japan.
ci = (gcnew CultureInfo("ja-JP"))->CompareInfo;
Console::WriteLine(L"The LCID for {0} is {1}.", ci->Name, ci->LCID);
// Display the result using ja-JP Compare of coté < côte.
Console::WriteLine("ja-JP Compare: {0} {2} {1}",
s2, s3, sign[ci->Compare(s2, s3) + 1]);
}
// This code produces the following output.
//
// The LCID for fr-FR is 1036.
// fr-FR Compare: Coté = coté
// fr-FR Compare: coté > côte
// The LCID for ja-JP is 1041.
// ja-JP Compare: coté < côte
using System;
using System.Text;
using System.Globalization;
public sealed class App
{
static void Main(string[] args)
{
String[] sign = new String[] { "<", "=", ">" };
// The code below demonstrates how strings compare
// differently for different cultures.
String s1 = "Coté", s2 = "coté", s3 = "côte";
// Set sort order of strings for French in France.
CompareInfo ci = new CultureInfo("fr-FR").CompareInfo;
Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID);
// Display the result using fr-FR Compare of Coté = coté.
Console.WriteLine("fr-FR Compare: {0} {2} {1}",
s1, s2, sign[ci.Compare(s1, s2, CompareOptions.IgnoreCase) + 1]);
// Display the result using fr-FR Compare of coté > côte.
Console.WriteLine("fr-FR Compare: {0} {2} {1}",
s2, s3, sign[ci.Compare(s2, s3, CompareOptions.None) + 1]);
// Set sort order of strings for Japanese as spoken in Japan.
ci = new CultureInfo("ja-JP").CompareInfo;
Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID);
// Display the result using ja-JP Compare of coté < côte.
Console.WriteLine("ja-JP Compare: {0} {2} {1}",
s2, s3, sign[ci.Compare(s2, s3) + 1]);
}
}
// This code produces the following output.
//
// The LCID for fr-FR is 1036.
// fr-FR Compare: Coté = coté
// fr-FR Compare: coté > côte
// The LCID for ja-JP is 1041.
// ja-JP Compare: coté < côte
Imports System.Text
Imports System.Globalization
NotInheritable Public Class App
Shared Sub Main(ByVal args() As String)
Dim sign() As String = {"<", "=", ">"}
' The code below demonstrates how strings compare
' differently for different cultures.
Dim s1 As String = "Coté"
Dim s2 As String = "coté"
Dim s3 As String = "côte"
' Set sort order of strings for French in France.
Dim ci As CompareInfo = New CultureInfo("fr-FR").CompareInfo
Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID)
' Display the result using fr-FR Compare of Coté = coté.
Console.WriteLine("fr-FR Compare: {0} {2} {1}", _
s1, s2, sign((ci.Compare(s1, s2, CompareOptions.IgnoreCase) + 1)))
' Display the result using fr-FR Compare of coté > côte.
Console.WriteLine("fr-FR Compare: {0} {2} {1}", _
s2, s3, sign((ci.Compare(s2, s3, CompareOptions.None) + 1)))
' Set sort order of strings for Japanese as spoken in Japan.
ci = New CultureInfo("ja-JP").CompareInfo
Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID)
' Display the result using ja-JP Compare of coté < côte.
Console.WriteLine("ja-JP Compare: {0} {2} {1}", _
s2, s3, sign((ci.Compare(s2, s3) + 1)))
End Sub
End Class
' This code produces the following output.
'
' The LCID for fr-FR is 1036.
' fr-FR Compare: Coté = coté
' fr-FR Compare: coté > côte
' The LCID for ja-JP is 1041.
' ja-JP Compare: coté < côte
설명
데이터 비교 및 정렬 규칙은 문화권마다 다릅니다. 예를 들어 정렬 순서는 윗주 또는 문자의 시각적 표현을 기반으로 할 수 있습니다. 동아시아 언어에서는 표의 문자의 부수와 획에 따라 문자가 정렬됩니다. 언어와 문화권이 알파벳에 사용하는 순서에 따라 정렬 순서가 달라지기도 합니다. 예를 들어 덴마크어 알파벳의 "Æ" 문자는 "Z" 다음에 옵니다. 또한 비교는 대/소문자를 구분하거나 대/소문자를 구분하지 않을 수 있으며 대/소문자 구분 규칙도 문화권에 따라 다를 수 있습니다. 클래스는 CompareInfo 이 문화권 구분 문자열 비교 데이터를 유지하고 문화권 구분 문자열 작업을 수행하는 작업을 담당합니다.
일반적으로 메서드 호출을 포함하여 모든 비 서수 문자열 비교 작업에서 암시적으로 사용되므로 개체를 직접 인스턴스화 CompareInfo 할 String.Compare 필요가 없습니다. 그러나 개체를 검색 CompareInfo 하려는 경우 다음 방법 중 하나로 개체를 검색할 수 있습니다.
특정 문화권에 CultureInfo.CompareInfo 대한 속성 값을 검색합니다.
문화권 이름을 사용하여 정적 GetCompareInfo 메서드를 호출합니다. 이렇게 하면 개체에 대한 런타임에 CompareInfo 바인딩된 액세스를 허용합니다.
무시된 검색 값
문자 집합에는 무시할 수 있는 문자가 포함되며, 이들 문자는 언어 또는 문화권 구분 비교를 수행하는 경우 고려되지 않습니다. 문화권 구분 비교를 수행할 때와 같은 IndexOf 비교 메서드는 LastIndexOf 이러한 문자를 고려하지 않습니다. 무시할 수 있는 문자는 다음과 같습니다.
String.Empty. 문화권을 구분하는 비교 메서드는 항상 검색되는 문자열의 시작 부분(인덱스 0)에 빈 문자열을 찾습니다.
비교 옵션으로 인해 작업에서 고려되지 않는 코드 포인트가 있는 문자로 구성된 문자 또는 문자열입니다. 특히 CompareOptions.IgnoreNonSpace 및 CompareOptions.IgnoreSymbols 옵션은 기호와 간격 없는 결합 문자가 무시되는 검색을 생성합니다.
언어적 의미가 없는 코드 포인트가 있는 문자열입니다. 예를 들어 소프트 하이픈(U+00AD)은 문화권 구분 문자열 비교에서 항상 무시됩니다.
보안 고려 사항
보안 결정이 문자열 비교 또는 대/소문자 변경에 따라 달라지는 경우 이 속성을 사용하여 InvariantCulture 운영 체제의 문화권 설정에 관계없이 동작이 일관되도록 해야 합니다.
참고
가능하면 형식 CompareOptions 의 매개 변수가 있는 문자열 비교 메서드를 사용하여 예상되는 비교 종류를 지정해야 합니다. 일반적으로 사용자 인터페이스에 표시된 문자열을 비교하고 보안 비교를 위해 Ordinal OrdinalIgnoreCase 언어 옵션(현재 문화권 사용)을 사용합니다.
속성
| LCID |
현재 CompareInfo에 대한 올바른 형태의 문화권 식별자를 가져옵니다. |
| Name |
이 CompareInfo 개체에서 정렬 작업에 사용하는 문화권의 이름을 가져옵니다. |
| Version |
문자열을 비교하고 정렬하는 데 사용되는 유니코드 버전에 대한 정보를 가져옵니다. |
메서드
| Compare(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions) |
두 개의 읽기 전용 문자 범위를 비교합니다. |
| Compare(String, Int32, Int32, String, Int32, Int32) |
한 문자열의 특정 영역을 다른 문자열의 특정 영역과 비교합니다. |
| Compare(String, Int32, Int32, String, Int32, Int32, CompareOptions) |
지정된 CompareOptions 값을 사용하여 한 문자열의 특정 영역을 다른 문자열의 특정 영역과 비교합니다. |
| Compare(String, Int32, String, Int32) |
한 문자열의 끝 영역을 다른 문자열의 끝 영역과 비교합니다. |
| Compare(String, Int32, String, Int32, CompareOptions) |
지정된 CompareOptions 값을 사용하여 한 문자열의 끝 영역을 다른 문자열의 시작 영역과 비교합니다. |
| Compare(String, String) |
두 문자열을 비교합니다. |
| Compare(String, String, CompareOptions) |
지정된 CompareOptions 값을 사용하여 두 문자열을 비교합니다. |
| Equals(Object) |
지정한 개체와 현재 CompareInfo 개체가 같은지 여부를 확인합니다. |
| GetCompareInfo(Int32) |
지정된 식별자가 있는 문화권과 연결된 새 CompareInfo 개체를 초기화합니다. |
| GetCompareInfo(Int32, Assembly) |
지정된 문화권과 연결되어 있고 지정된 CompareInfo의 문자열 비교 메서드를 사용하는 새 Assembly 개체를 초기화합니다. |
| GetCompareInfo(String) |
지정된 이름이 있는 문화권과 연결된 새 CompareInfo 개체를 초기화합니다. |
| GetCompareInfo(String, Assembly) |
지정된 문화권과 연결되어 있고 지정된 CompareInfo의 문자열 비교 메서드를 사용하는 새 Assembly 개체를 초기화합니다. |
| GetHashCode() |
해시 알고리즘 및 해시 테이블 같은 데이터 구조의 현재 CompareInfo에 대한 해시 함수의 역할을 합니다. |
| GetHashCode(ReadOnlySpan<Char>, CompareOptions) |
지정된 비교 옵션 기반의 문자에 대한 해시 코드를 가져옵니다. |
| GetHashCode(String, CompareOptions) |
지정된 비교 옵션 기반의 문자열에 대한 해시 코드를 가져옵니다. |
| GetSortKey(ReadOnlySpan<Char>, Span<Byte>, CompareOptions) |
지정된 입력에 대한 정렬 키를 컴퓨팅합니다. |
| GetSortKey(String) |
지정된 문자열의 정렬 키를 가져옵니다. |
| GetSortKey(String, CompareOptions) |
지정된 SortKey 값을 사용하여 지정된 문자열의 CompareOptions 개체를 가져옵니다. |
| GetSortKeyLength(ReadOnlySpan<Char>, CompareOptions) |
지정된 입력에서 생성될 정렬 키 바이트의 총수를 가져옵니다. |
| GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
| IndexOf(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions) |
지정된 읽기 전용 문자 범위 내에서 첫 하위 문자열을 검색합니다. |
| IndexOf(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions, Int32) |
소스 문자열 내에서 맨 처음 나타나는 부분 문자열을 검색합니다. |
| IndexOf(ReadOnlySpan<Char>, Rune, CompareOptions) |
지정된 읽기 전용 문자 범위 내에서 첫 Rune을 검색합니다. |
| IndexOf(String, Char) |
전체 소스 문자열에서 지정된 문자를 검색하고, 맨 처음 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| IndexOf(String, Char, CompareOptions) |
전체 소스 문자열에서 지정된 CompareOptions 값을 사용하여 지정된 문자를 검색하고, 맨 처음 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| IndexOf(String, Char, Int32) |
소스 문자열 중 지정된 인덱스부터 문자열 끝까지의 영역에서 지정된 문자를 검색하고, 맨 처음 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| IndexOf(String, Char, Int32, CompareOptions) |
소스 문자열 중 지정된 인덱스부터 문자열 끝까지의 영역에서 지정된 CompareOptions 값을 사용하여 지정된 문자를 검색하고, 맨 처음 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| IndexOf(String, Char, Int32, Int32) |
소스 문자열 중 지정된 인덱스에서 시작하고 지정된 수의 요소를 포함하는 영역에서 지정된 문자를 검색하고, 맨 처음 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| IndexOf(String, Char, Int32, Int32, CompareOptions) |
소스 문자열 중 지정된 인덱스에서 시작하고 지정된 수의 요소를 포함하는 영역에서 지정된 CompareOptions 값을 사용하여 지정된 문자를 검색하고, 맨 처음 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| IndexOf(String, String) |
전체 소스 문자열에서 지정된 부분 문자열을 검색하고, 맨 처음 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| IndexOf(String, String, CompareOptions) |
전체 소스 문자열에서 지정된 CompareOptions 값을 사용하여 지정된 부분 문자열을 검색하고, 맨 처음 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| IndexOf(String, String, Int32) |
소스 문자열 중 지정된 인덱스부터 문자열 끝까지의 영역에서 지정된 부분 문자열을 검색하고, 맨 처음 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| IndexOf(String, String, Int32, CompareOptions) |
소스 문자열 중 지정된 인덱스부터 문자열 끝까지의 영역에서 지정된 CompareOptions 값을 사용하여 지정된 부분 문자열을 검색하고, 맨 처음 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| IndexOf(String, String, Int32, Int32) |
소스 문자열 중 지정된 인덱스에서 시작하고 지정된 수의 요소를 포함하는 영역에서 지정된 부분 문자열을 검색하고, 맨 처음 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| IndexOf(String, String, Int32, Int32, CompareOptions) |
소스 문자열 중 지정된 인덱스에서 시작하고 지정된 수의 요소를 포함하는 영역에서 지정된 CompareOptions 값을 사용하여 지정된 부분 문자열을 검색하고, 맨 처음 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| IsPrefix(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions) |
읽기 전용 문자 범위가 특정 접두사로 시작하는지 여부를 확인합니다. |
| IsPrefix(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions, Int32) |
문자열이 지정된 접두사로 시작하는지 여부를 확인합니다. |
| IsPrefix(String, String) |
지정된 소스 문자열이 지정된 접두사로 시작하는지 여부를 확인합니다. |
| IsPrefix(String, String, CompareOptions) |
지정된 CompareOptions 값을 사용하여 지정된 소스 문자열이 지정된 접두사로 시작하는지 여부를 확인합니다. |
| IsSortable(Char) |
지정된 유니코드 문자가 정렬 가능한지 여부를 나타냅니다. |
| IsSortable(ReadOnlySpan<Char>) |
지정된 유니코드 읽기 전용 문자 범위를 정렬할 수 있는지 여부를 나타냅니다. |
| IsSortable(Rune) |
지정된 Rune을 정렬할 수 있는지 여부를 나타냅니다. |
| IsSortable(String) |
지정된 유니코드 문자열이 정렬 가능한지 여부를 나타냅니다. |
| IsSuffix(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions) |
읽기 전용 문자 범위가 특정 접미사로 끝나는지 여부를 확인합니다. |
| IsSuffix(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions, Int32) |
문자열이 지정된 접미사로 끝나는지 여부를 확인합니다. |
| IsSuffix(String, String) |
지정된 소스 문자열이 지정된 접미사로 끝나는지 여부를 확인합니다. |
| IsSuffix(String, String, CompareOptions) |
지정된 CompareOptions 값을 사용하여 지정된 소스 문자열이 지정된 접미사로 끝나는지 여부를 확인합니다. |
| LastIndexOf(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions) |
지정된 읽기 전용 문자 범위 내에서 마지막 하위 문자열을 검색합니다. |
| LastIndexOf(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions, Int32) |
소스 문자열에서 마지막에 나타나는 부분 문자열을 검색합니다. |
| LastIndexOf(ReadOnlySpan<Char>, Rune, CompareOptions) |
지정된 읽기 전용 문자 범위 내에서 마지막 Rune을 검색합니다. |
| LastIndexOf(String, Char) |
전체 소스 문자열에서 지정된 문자를 검색하고, 마지막에 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| LastIndexOf(String, Char, CompareOptions) |
전체 소스 문자열에서 지정된 CompareOptions 값을 사용하여 지정된 문자를 검색하고, 마지막에 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| LastIndexOf(String, Char, Int32) |
소스 문자열 중 처음부터 지정된 인덱스까지의 영역에서 지정된 문자를 검색하고, 마지막에 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| LastIndexOf(String, Char, Int32, CompareOptions) |
소스 문자열 중 문자열의 시작 부분부터 지정된 인덱스까지의 영역에서 지정된 CompareOptions 값을 사용하여 지정된 문자를 검색하고, 마지막에 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| LastIndexOf(String, Char, Int32, Int32) |
소스 문자열 중 지정된 수의 요소를 포함하고 지정된 인덱스에서 끝나는 영역에서 지정된 문자를 검색하고, 마지막에 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| LastIndexOf(String, Char, Int32, Int32, CompareOptions) |
소스 문자열 중 지정된 수의 요소를 포함하고 지정된 인덱스에서 끝나는 영역에서 지정된 CompareOptions 값을 사용하여 지정된 문자를 검색하고, 마지막에 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| LastIndexOf(String, String) |
전체 소스 문자열에서 지정된 부분 문자열을 검색하고, 마지막에 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| LastIndexOf(String, String, CompareOptions) |
전체 소스 문자열에서 지정된 CompareOptions 값을 사용하여 지정된 부분 문자열을 검색하고, 마지막에 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| LastIndexOf(String, String, Int32) |
소스 문자열 중 처음부터 지정된 인덱스까지의 영역에서 지정된 부분 문자열을 검색하고, 마지막에 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| LastIndexOf(String, String, Int32, CompareOptions) |
소스 문자열 중 문자열의 시작 부분부터 지정된 인덱스까지의 영역에서 지정된 CompareOptions 값을 사용하여 지정된 부분 문자열을 검색하고, 마지막에 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| LastIndexOf(String, String, Int32, Int32) |
소스 문자열 중 지정된 수의 요소를 포함하고 지정된 인덱스에서 끝나는 영역에서 지정된 부분 문자열을 검색하고, 마지막에 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| LastIndexOf(String, String, Int32, Int32, CompareOptions) |
소스 문자열 중 지정된 수의 요소를 포함하고 지정된 인덱스에서 끝나는 영역에서 지정된 CompareOptions 값을 사용하여 지정된 부분 문자열을 검색하고, 마지막에 검색된 항목의 인덱스(0부터 시작)를 반환합니다. |
| MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
| ToString() |
현재 CompareInfo 개체를 나타내는 문자열을 반환합니다. |
명시적 인터페이스 구현
| IDeserializationCallback.OnDeserialization(Object) |
전체 개체 그래프가 역직렬화될 때 실행됩니다. |
확장 메서드
| GetStringComparer(CompareInfo, CompareOptions) |
지정한 CompareInfo 개체의 문화권 구분 문자열 비교 규칙에 따라 StringComparer 개체를 반환합니다. |