CompareInfo Třída

Definice

Implementuje sadu metod pro porovnání řetězců citlivých na jazykovou verzi.

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
Dědičnost
CompareInfo
Atributy
Implementuje

Příklady

Následující příklad ukazuje, jak CompareInfo objekt přidružený k objektu CultureInfo ovlivňuje porovnání řetězců.

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

Poznámky

Konvence pro porovnávání a řazení dat se liší od jazykové verze po jazykovou verzi. Pořadí řazení může být například založené na fonetice nebo na vizuální reprezentaci znaků. Ve východoasijských jazycích jsou znaky řazeny podle úhozů a radikálu ideografických znaků. Řazení závisí také na pořadí, které jazyky a jazykové verze používají pro abecedu. Dánský jazyk má například znak „Æ“, který se abecedně řadí za znak „Z“. Kromě toho mohou být porovnání citlivá na malá a velká písmena nebo nerozlišující malá a velká a velká písmena a pravidla písmen se také mohou lišit podle jazykové verze. Třída CompareInfo zodpovídá za údržbu dat porovnání řetězců citlivých na jazykovou verzi a za provádění operací řetězců citlivých na jazykovou verzi.

Obvykle nemusíte vytvořit instanci CompareInfo objektu přímo, protože jeden je implicitně používán všemi neřadičivými operacemi porovnání řetězců, včetně volání String.Compare metody. Pokud ale chcete načíst CompareInfo objekt, můžete to udělat jedním z těchto způsobů:

Ignorované hodnoty hledání

Znakové sady obsahují ignorovatelné znaky, což jsou znaky, které nejsou zahrnuty do jazykového porovnání nebo porovnání závislém na jazykové verzi. Metody porovnání, jako IndexOf jsou například a LastIndexOf nebere v úvahu takové znaky při provádění porovnání citlivé na jazykovou verzi. Ignorovatelné znaky zahrnují:

  • String.Empty. Metody porovnání citlivé na jazykovou verzi vždy najdou prázdný řetězec na začátku (index nula) prohledávaného řetězce.

  • Znak nebo řetězec skládající se z znaků s body kódu, které nejsou považovány za v operaci z důvodu možností porovnání, zejména CompareOptions.IgnoreNonSpace možnosti vytvářejí CompareOptions.IgnoreSymbols hledání, ve kterých jsou symboly a mezery kombinování znaků ignorovány.

  • Řetězec s body kódu, které nemají žádný lingvistický význam. Například měkký spojovník (U+00AD) je vždy ignorován v porovnání řetězců citlivých na jazykovou verzi.

Důležité informace o zabezpečení

Pokud rozhodnutí o zabezpečení závisí na porovnání řetězců nebo změně případu, měli byste použít InvariantCulture vlastnost k zajištění konzistentního chování bez ohledu na nastavení jazykové verze operačního systému.

Poznámka

Pokud je to možné, měli byste použít metody porovnání řetězců, které mají parametr typu CompareOptions k určení očekávaného typu porovnání. Obecně platí, že pro porovnávání řetězců zobrazených v uživatelském rozhraní použijte lingvistické možnosti (pomocí aktuální jazykové verze) a určete Ordinal nebo OrdinalIgnoreCase pro porovnání zabezpečení.

Vlastnosti

LCID

Získá správně vytvořený identifikátor jazykové verze pro aktuální CompareInfo.

Name

Získá název jazykové verze používané pro řazení operací podle tohoto CompareInfo objektu.

Version

Získá informace o verzi Unicode použité pro porovnávání a řazení řetězců.

Metody

Compare(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions)

Porovná dva rozsahy znaků jen pro čtení.

Compare(String, Int32, Int32, String, Int32, Int32)

Porovná oddíl jednoho řetězce s oddílem jiného řetězce.

Compare(String, Int32, Int32, String, Int32, Int32, CompareOptions)

Porovná oddíl jednoho řetězce s oddílem jiného řetězce pomocí zadané CompareOptions hodnoty.

Compare(String, Int32, String, Int32)

Porovná koncový oddíl řetězce s koncovým oddílem jiného řetězce.

Compare(String, Int32, String, Int32, CompareOptions)

Porovná koncový oddíl řetězce s koncovým oddílem jiného řetězce pomocí zadané CompareOptions hodnoty.

Compare(String, String)

Porovná dva řetězce.

Compare(String, String, CompareOptions)

Porovná dva řetězce pomocí zadané CompareOptions hodnoty.

Equals(Object)

Určuje, zda se zadaný objekt rovná aktuálnímu CompareInfo objektu.

GetCompareInfo(Int32)

Inicializuje nový CompareInfo objekt, který je přidružen k jazykové verzi se zadaným identifikátorem.

GetCompareInfo(Int32, Assembly)

Inicializuje nový CompareInfo objekt, který je přidružen k zadané jazykové verzi a který používá metody porovnání řetězců v zadaném Assembly.

GetCompareInfo(String)

Inicializuje nový CompareInfo objekt, který je přidružen k jazykové verzi se zadaným názvem.

GetCompareInfo(String, Assembly)

Inicializuje nový CompareInfo objekt, který je přidružen k zadané jazykové verzi a který používá metody porovnání řetězců v zadaném Assembly.

GetHashCode()

Slouží jako funkce hash pro aktuální CompareInfo algoritmus hash a datové struktury, jako je tabulka hash.

GetHashCode(ReadOnlySpan<Char>, CompareOptions)

Získá kód hash pro rozsah znaků na základě zadaných možností porovnání.

GetHashCode(String, CompareOptions)

Získá hash kód řetězce na základě zadaných možností porovnání.

GetSortKey(ReadOnlySpan<Char>, Span<Byte>, CompareOptions)

Vypočítá klíč řazení pro zadaný vstup.

GetSortKey(String)

Získá klíč řazení pro zadaný řetězec.

GetSortKey(String, CompareOptions)

SortKey Získá objekt pro zadaný řetězec pomocí zadané CompareOptions hodnoty.

GetSortKeyLength(ReadOnlySpan<Char>, CompareOptions)

Získá celkový počet bajtů klíče řazení, které by se vytvořily ze zadaného vstupu.

GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
IndexOf(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions)

Vyhledá první výskyt podřetětce v zadaném rozsahu znaků jen pro čtení.

IndexOf(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions, Int32)

Vyhledá první výskyt podřetězce ve zdrojovém řetězci.

IndexOf(ReadOnlySpan<Char>, Rune, CompareOptions)

Vyhledá první výskyt Rune v zadaném rozsahu znaků jen pro čtení.

IndexOf(String, Char)

Vyhledá zadaný znak a vrátí index založený na nule prvního výskytu v celém zdrojovém řetězci.

IndexOf(String, Char, CompareOptions)

Vyhledá zadaný znak a vrátí index na základě nuly prvního výskytu v celém zdrojovém řetězci pomocí zadané CompareOptions hodnoty.

IndexOf(String, Char, Int32)

Vyhledá zadaný znak a vrátí nulový index prvního výskytu v oddílu zdrojového řetězce, který se rozšiřuje ze zadaného indexu na konec řetězce.

IndexOf(String, Char, Int32, CompareOptions)

Vyhledá zadaný znak a vrátí nulový index prvního výskytu v oddílu zdrojového řetězce, který se rozšiřuje ze zadaného indexu na konec řetězce pomocí zadané CompareOptions hodnoty.

IndexOf(String, Char, Int32, Int32)

Vyhledá zadaný znak a vrátí index založený na nule prvního výskytu v oddílu zdrojového řetězce, který začíná na zadaném indexu a obsahuje zadaný počet prvků.

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

Vyhledá zadaný znak a vrátí nulový index prvního výskytu v oddílu zdrojového řetězce, který začíná na zadaném indexu a obsahuje zadaný počet prvků pomocí zadané CompareOptions hodnoty.

IndexOf(String, String)

Vyhledá zadaný podřetězec a vrátí nulový index prvního výskytu v rámci celého zdrojového řetězce.

IndexOf(String, String, CompareOptions)

Vyhledá zadaný podřetězec a vrátí index prvního výskytu nula v celém zdrojovém řetězci pomocí zadané CompareOptions hodnoty.

IndexOf(String, String, Int32)

Vyhledá zadaný podřetězec a vrátí index prvního výskytu nula v oddílu zdrojového řetězce, který se rozšiřuje ze zadaného indexu na konec řetězce.

IndexOf(String, String, Int32, CompareOptions)

Vyhledá zadaný podřetězce a vrátí index prvního výskytu v oddílu zdrojového řetězce, který se rozšiřuje ze zadaného indexu na konec řetězce pomocí zadané CompareOptions hodnoty.

IndexOf(String, String, Int32, Int32)

Vyhledá zadaný podřetězce a vrátí nulový index prvního výskytu v oddílu zdrojového řetězce, který začíná na zadaném indexu a obsahuje zadaný počet prvků.

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

Vyhledá zadaný podřetězec a vrátí index prvního výskytu nula v oddílu zdrojového řetězce, který začíná na zadaném indexu a obsahuje zadaný počet prvků pomocí zadané CompareOptions hodnoty.

IsPrefix(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions)

Určuje, zda rozsah znaků jen pro čtení začíná určitou předponou.

IsPrefix(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions, Int32)

Určuje, zda řetězec začíná konkrétní předponou.

IsPrefix(String, String)

Určuje, zda zadaný zdrojový řetězec začíná zadanou předponou.

IsPrefix(String, String, CompareOptions)

Určuje, zda zadaný zdrojový řetězec začíná zadanou předponou pomocí zadané CompareOptions hodnoty.

IsSortable(Char)

Určuje, jestli je zadaný znak Unicode seřazený.

IsSortable(ReadOnlySpan<Char>)

Určuje, jestli je zadaný rozsah znaků jen pro čtení v kódování Unicode seřazený.

IsSortable(Rune)

Určuje, jestli je zadané Rune řazení možné.

IsSortable(String)

Určuje, jestli je zadaný řetězec Unicode seřazený.

IsSuffix(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions)

Určuje, zda rozsah znaků určený jen pro čtení končí konkrétní příponou.

IsSuffix(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions, Int32)

Určuje, zda řetězec končí konkrétní příponou.

IsSuffix(String, String)

Určuje, zda zadaný zdrojový řetězec končí zadanou příponou.

IsSuffix(String, String, CompareOptions)

Určuje, zda zadaný zdrojový řetězec končí zadanou příponou pomocí zadané CompareOptions hodnoty.

LastIndexOf(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions)

Vyhledá poslední výskyt podřetětce v zadaném rozsahu znaků jen pro čtení.

LastIndexOf(ReadOnlySpan<Char>, ReadOnlySpan<Char>, CompareOptions, Int32)

Vyhledá poslední výskyt podřetězce ve zdrojovém řetězci.

LastIndexOf(ReadOnlySpan<Char>, Rune, CompareOptions)

Vyhledá poslední výskyt zadaného Rune rozsahu znaků jen pro čtení.

LastIndexOf(String, Char)

Vyhledá zadaný znak a vrátí nulový index posledního výskytu v celém zdrojovém řetězci.

LastIndexOf(String, Char, CompareOptions)

Vyhledá zadaný znak a vrátí nulový index posledního výskytu v celém zdrojovém řetězci pomocí zadané CompareOptions hodnoty.

LastIndexOf(String, Char, Int32)

Vyhledá zadaný znak a vrátí index založený na nule posledního výskytu v oddílu zdrojového řetězce, který se rozšiřuje od začátku řetězce na zadaný index.

LastIndexOf(String, Char, Int32, CompareOptions)

Vyhledá zadaný znak a vrátí nulový index posledního výskytu v oddílu zdrojového řetězce, který se rozšiřuje od začátku řetězce na zadaný index pomocí zadané CompareOptions hodnoty.

LastIndexOf(String, Char, Int32, Int32)

Vyhledá zadaný znak a vrátí index založený na nule posledního výskytu v oddílu zdrojového řetězce, který obsahuje zadaný počet prvků a končí na zadaném indexu.

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

Vyhledá zadaný znak a vrátí nulový index posledního výskytu v oddílu zdrojového řetězce, který obsahuje zadaný počet prvků a končí na zadaném indexu pomocí zadané CompareOptions hodnoty.

LastIndexOf(String, String)

Vyhledá zadaný podřetězce a vrátí nulový index posledního výskytu v celém zdrojovém řetězci.

LastIndexOf(String, String, CompareOptions)

Vyhledá zadaný podřetězec a vrátí index založený na nule posledního výskytu v celém zdrojovém řetězci pomocí zadané CompareOptions hodnoty.

LastIndexOf(String, String, Int32)

Vyhledá zadaný podřetězec a vrátí nulový index posledního výskytu v oddílu zdrojového řetězce, který se rozšiřuje od začátku řetězce na zadaný index.

LastIndexOf(String, String, Int32, CompareOptions)

Vyhledá zadaný podřetězc a vrátí index posledního výskytu nula v oddílu zdrojového řetězce, který se rozšiřuje od začátku řetězce na zadaný index pomocí zadané CompareOptions hodnoty.

LastIndexOf(String, String, Int32, Int32)

Vyhledá zadaný podřetězc a vrátí index posledního výskytu nula v oddílu zdrojového řetězce, který obsahuje zadaný počet prvků a končí na zadaném indexu.

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

Vyhledá zadaný podřetězce a vrátí index založený na nule posledního výskytu v oddílu zdrojového řetězce, který obsahuje zadaný počet prvků a končí na zadaném indexu pomocí zadané CompareOptions hodnoty.

MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální CompareInfo objekt.

Explicitní implementace rozhraní

IDeserializationCallback.OnDeserialization(Object)

Spustí se, když byl deserializován celý graf objektů.

Metody rozšíření

GetStringComparer(CompareInfo, CompareOptions)

StringComparer Vrátí objekt založený na pravidlech porovnání řetězců citlivých na jazykovou verzi zadaného CompareInfo objektu.

Platí pro

Viz také