CompareInfo Класс

Определение

Реализует ряд методов для сравнения строк с учетом языка и региональных параметров.

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. Методы сравнения, зависящие от языка и региональных параметров, всегда будут находить пустую строку в начале (ноль индекса) искомой строки.

  • Символ или строка, состоящая из символов с кодовыми точками, которые не учитываются в операции из-за параметров сравнения, в частности, 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)

Осуществляет поиск указанного знака и возвращает отсчитываемый с нуля индекс первого найденного экземпляра во всей строке источника.

IndexOf(String, Char, CompareOptions)

Осуществляет поиск указанного знака и возвращает отсчитываемый с нуля индекс первого найденного экземпляра во всей строке источника с использованием заданного значения CompareOptions.

IndexOf(String, Char, Int32)

Осуществляет поиск указанного знака и возвращает отсчитываемый с нуля индекс первого экземпляра в части строки источника от указанного индекса до конца строки.

IndexOf(String, Char, Int32, CompareOptions)

Осуществляет поиск заданного знака и возвращает отсчитываемый от нуля индекс первого экземпляра в разделе исходной строки от заданного индекса до конца строки с использованием заданного значения CompareOptions.

IndexOf(String, Char, Int32, Int32)

Осуществляет поиск указанного знака и возвращает отсчитываемый с нуля индекс первого экземпляра в части строки источника, который начинается с указанного индекса и содержит указанное количество элементов.

IndexOf(String, Char, Int32, Int32, CompareOptions)

Осуществляет поиск указанного знака и возвращает отсчитываемый с нуля индекс первого экземпляра в разделе строки источника, который начинается с указанного индекса и содержит указанное количество элементов, с использованием указанного значения CompareOptions.

IndexOf(String, String)

Осуществляет поиск указанной подстроки и возвращает отсчитываемый с нуля индекс первого найденного экземпляра во всей строке источника.

IndexOf(String, String, CompareOptions)

Осуществляет поиск указанной подстроки и возвращает отсчитываемый с нуля индекс первого найденного экземпляра во всей строке источника с использованием заданного значения CompareOptions.

IndexOf(String, String, Int32)

Осуществляет поиск указанной подстроки и возвращает отсчитываемый с нуля индекс первого экземпляра в части строки источника от указанного индекса до конца строки.

IndexOf(String, String, Int32, CompareOptions)

Осуществляет поиск заданной подстроки и возвращает отсчитываемый от нуля индекс первого экземпляра в разделе исходной строки от заданного индекса до конца строки с использованием заданного значения CompareOptions.

IndexOf(String, String, Int32, Int32)

Осуществляет поиск указанной подстроки и возвращает отсчитываемый с нуля индекс первого экземпляра в части строки источника, которая начинается с указанного индекса и содержит указанное число элементов.

IndexOf(String, String, Int32, Int32, CompareOptions)

Осуществляет поиск указанной подстроки и возвращает отсчитываемый с нуля индекс первого экземпляра в разделе строки источника, который начинается с указанного индекса и содержит указанное количество элементов, с использованием указанного значения CompareOptions.

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)

Осуществляет поиск указанного знака и возвращает отсчитываемый с нуля индекс последнего найденного экземпляра во всей строке источника.

LastIndexOf(String, Char, CompareOptions)

Осуществляет поиск указанного знака и возвращает отсчитываемый с нуля индекс последнего найденного экземпляра во всей строке источника с использованием заданного значения CompareOptions.

LastIndexOf(String, Char, Int32)

Осуществляет поиск указанного знака и возвращает отсчитываемый с нуля индекс последнего экземпляра в разделе строки источника от начала строки до указанного индекса.

LastIndexOf(String, Char, Int32, CompareOptions)

Осуществляет поиск заданного знака и возвращает отсчитываемый от нуля индекс последнего экземпляра в разделе исходной строки от начала строки до заданного индекса с использованием заданного значения CompareOptions.

LastIndexOf(String, Char, Int32, Int32)

Осуществляет поиск указанного знака и возвращает отсчитываемый с нуля индекс последнего экземпляра в части строки источника, которая содержит указанное количество элементов и заканчивается на указанном индексе.

LastIndexOf(String, Char, Int32, Int32, CompareOptions)

Осуществляет поиск указанного знака и возвращает отсчитываемый с нуля индекс последнего экземпляра в разделе строки источника, который содержит указанное количество элементов и заканчивается на указанном индексе, с использованием указанного значения CompareOptions.

LastIndexOf(String, String)

Выполняет поиск указанной подстроки и возвращает начинающийся с нуля индекс последнего экземпляра в рамках всей исходной строки.

LastIndexOf(String, String, CompareOptions)

Осуществляет поиск указанной подстроки и возвращает отсчитываемый с нуля индекс последнего найденного экземпляра во всей строке источника с использованием заданного значения CompareOptions.

LastIndexOf(String, String, Int32)

Осуществляет поиск указанной подстроки и возвращает отсчитываемый с нуля индекс последнего экземпляра в части строки источника от начала строки до указанного индекса.

LastIndexOf(String, String, Int32, CompareOptions)

Осуществляет поиск заданной подстроки и возвращает отсчитываемый от нуля индекс последнего экземпляра в разделе исходной строки от начала строки до заданного индекса с использованием заданного значения CompareOptions.

LastIndexOf(String, String, Int32, Int32)

Осуществляет поиск указанной подстроки и возвращает отсчитываемый с нуля индекс последнего экземпляра в части строки источника, который содержит указанное количество элементов и заканчивается на указанном индексе.

LastIndexOf(String, String, Int32, Int32, CompareOptions)

Осуществляет поиск указанной подстроки и возвращает отсчитываемый с нуля индекс последнего экземпляра в разделе строки источника, который содержит указанное количество элементов и заканчивается на указанном индексе, с использованием указанного значения CompareOptions.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект CompareInfo.

Явные реализации интерфейса

IDeserializationCallback.OnDeserialization(Object)

Выполняется, когда полностью десериализован граф объектов.

Методы расширения

GetStringComparer(CompareInfo, CompareOptions)

Возвращает StringComparer в соответствии с правилами сравнения строк с учетом языка и региональных параметров указанного объекта CompareInfo.

Применяется к

См. также раздел