CompareInfo Třída

Definice

Implementuje sadu metod pro porovnávání řetězců závislé na jazykové verzi.Implements a set of methods for culture-sensitive string comparisons.

public ref class CompareInfo : System::Runtime::Serialization::IDeserializationCallback
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class CompareInfo : System.Runtime.Serialization.IDeserializationCallback
type CompareInfo = class
    interface 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ý CultureInfo k objektu ovlivňuje porovnávání řetězců.The following example shows how the CompareInfo object associated with a CultureInfo object affects string comparison.

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 až po jazykovou verzi.Conventions for comparing and sorting data vary from culture to culture. Například pořadí řazení může být založené na výslovnosti nebo na vizuálním znázornění znaků.For example, sort order may be based on phonetics or on the visual representation of characters. Ve východoasijských jazycích jsou znaky řazeny podle úhozů a radikálu ideografických znaků.In East Asian languages, characters are sorted by the stroke and radical of ideographs. Řazení závisí také na pořadí, které jazyky a jazykové verze používají pro abecedu.Sorting also depends on the order languages and cultures use for the alphabet. Dánský jazyk má například znak „Æ“, který se abecedně řadí za znak „Z“.For example, the Danish language has an "Æ" character that it sorts after "Z" in the alphabet. Kromě toho porovnávání může rozlišovat velká a malá písmena a pravidla pro velká a malá písmena se mohou lišit také podle jazykové verze.In addition, comparisons may be case-sensitive or case-insensitive, and casing rules may also differ by culture. CompareInfo Třída zodpovídá za údržbu těchto dat porovnání řetězců závislých na jazykové verzi a pro provádění operací s řetězci závislé na jazykové verzi.The CompareInfo class is responsible for maintaining this culture-sensitive string comparison data and for performing culture-sensitive string operations.

Obvykle není nutné vytvářet instanci CompareInfo objektu přímo, protože jeden je použit implicitně všemi operacemi porovnávání bez pořadového řetězce, včetně volání String.Compare metody.Typically, you do not have to instantiate a CompareInfo object directly, because one is used implicitly by all non-ordinal string comparison operations, including calls to the String.Compare method. Pokud však chcete načíst CompareInfo objekt, můžete to provést jedním z následujících způsobů:However, if you do want to retrieve a CompareInfo object, you can do it in one of these ways:

Ignorované hodnoty hledáníIgnored search values

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.Character sets include ignorable characters, which are characters that are not considered when performing a linguistic or culture-sensitive comparison. Metody IndexOf porovnání, jako jsou LastIndexOf a, nepovažují tyto znaky, pokud provádějí porovnání zohledňující jazykovou verzi.Comparison methods such as IndexOf and LastIndexOf do not consider such characters when they perform a culture-sensitive comparison. Ignorovatelné znaky jsou:Ignorable characters include:

  • String.Empty.String.Empty. Metody porovnání závislé na jazykové verzi vždy naleznou prázdný řetězec na začátku (index nula) vyhledávaného řetězce.Culture-sensitive comparison methods will always find an empty string at the beginning (index zero) of the string being searched.

  • Znak nebo řetězec sestávající ze znaků s kódovými body, které nejsou v operaci brány v důsledku možností porovnání, zejména pomocí CompareOptions.IgnoreNonSpace možností a CompareOptions.IgnoreSymbols , vyprodukuje hledání, které symboly a neodstupy se kombinují. znaky jsou ignorovány.A character or string consisting of characters with code points that are not considered in the operation because of comparison options, In particular, the CompareOptions.IgnoreNonSpace and CompareOptions.IgnoreSymbols options produce searches in which symbols and nonspacing combining characters are ignored.

  • Řetězec s kódovými body, které nemají žádný jazykový význam.A string with code points that have no linguistic significance. Například měkké spojovník (U + 00AD) je vždy ignorováno v porovnání řetězců závislém na jazykové verzi.For example, a soft hyphen (U+00AD) is always ignored in a culture-sensitive string comparison.

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

Pokud rozhodnutí o zabezpečení závisí na porovnání řetězců nebo změně velikosti písmen, měli byste InvariantCulture vlastnost použít k zajištění konzistence chování, bez ohledu na nastavení jazykové verze operačního systému.If a security decision depends on a string comparison or a case change, you should use the InvariantCulture property to ensure that the behavior is consistent, regardless of the culture settings of the operating system.

Poznámka

Pokud je to možné, měli byste použít metody porovnání řetězců, které mají parametr CompareOptions typu k určení typu porovnání, které očekáváte.When possible, you should use string comparison methods that have a parameter of type CompareOptions to specify the kind of comparison expected. Jako obecné pravidlo použijte jazykové možnosti (pomocí aktuální jazykové verze) pro porovnávání řetězců zobrazených v uživatelském rozhraní a určete Ordinal nebo OrdinalIgnoreCase pro porovnání zabezpečení.As a general rule, use linguistic options (using the current culture) for comparing strings displayed in the user interface and specify Ordinal or OrdinalIgnoreCase for security comparisons.

Vlastnosti

LCID

Získá pro aktuální CompareInfoidentifikátor jazykové verze se správným formátem.Gets the properly formed culture identifier for the current CompareInfo.

Name

Získá název jazykové verze používané pro řazení operací tímto CompareInfo objektem.Gets the name of the culture used for sorting operations by this CompareInfo object.

Version

Získá informace o verzi Unicode používané pro porovnávání a řazení řetězců.Gets information about the version of Unicode used for comparing and sorting strings.

Metody

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

Porovná část jednoho řetězce s částí jiného řetězce.Compares a section of one string with a section of another string.

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

Porovná část jednoho řetězce s částí jiného řetězce pomocí zadané CompareOptions hodnoty.Compares a section of one string with a section of another string using the specified CompareOptions value.

Compare(String, Int32, String, Int32)

Porovná oddíl end v řetězci s koncovým oddílem jiného řetězce.Compares the end section of a string with the end section of another string.

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

Porovná část end řetězce s koncovým oddílem jiného řetězce pomocí zadané CompareOptions hodnoty.Compares the end section of a string with the end section of another string using the specified CompareOptions value.

Compare(String, String)

Porovná dva řetězce.Compares two strings.

Compare(String, String, CompareOptions)

Porovná dva řetězce pomocí zadané CompareOptions hodnoty.Compares two strings using the specified CompareOptions value.

Equals(Object)

Určuje, zda je zadaný objekt stejný jako aktuální CompareInfo objekt.Determines whether the specified object is equal to the current CompareInfo object.

GetCompareInfo(Int32)

Inicializuje nový CompareInfo objekt, který je přidružen k jazykové verzi se zadaným identifikátorem.Initializes a new CompareInfo object that is associated with the culture with the specified identifier.

GetCompareInfo(Int32, Assembly)

Inicializuje nový CompareInfo objekt, který je přidružen k zadané jazykové verzi a používá metody porovnání řetězců v zadaném Assembly.Initializes a new CompareInfo object that is associated with the specified culture and that uses string comparison methods in the specified Assembly.

GetCompareInfo(String)

Inicializuje nový CompareInfo objekt, který je přidružen k jazykové verzi se zadaným názvem.Initializes a new CompareInfo object that is associated with the culture with the specified name.

GetCompareInfo(String, Assembly)

Inicializuje nový CompareInfo objekt, který je přidružen k zadané jazykové verzi a používá metody porovnání řetězců v zadaném Assembly.Initializes a new CompareInfo object that is associated with the specified culture and that uses string comparison methods in the specified Assembly.

GetHashCode()

Slouží jako funkce hash pro aktuální CompareInfo algoritmy algoritmů hash a datových struktur, jako je například zatřiďovací tabulka.Serves as a hash function for the current CompareInfo for hashing algorithms and data structures, such as a hash table.

GetHashCode(ReadOnlySpan<Char>, CompareOptions)

Získá kód hodnoty hash pro rozsah znaků na základě zadaných možností porovnání.Gets the hash code for a character span based on specified comparison options.

GetHashCode(String, CompareOptions)

Získá hashový kód pro řetězec na základě zadaných možností porovnání.Gets the hash code for a string based on specified comparison options.

GetSortKey(String)

Získá klíč řazení pro zadaný řetězec.Gets the sort key for the specified string.

GetSortKey(String, CompareOptions)

Získá objekt pro zadaný řetězec pomocí zadané CompareOptions hodnoty. SortKeyGets a SortKey object for the specified string using the specified CompareOptions value.

GetType()

Type Získá aktuální instanci.Gets the Type of the current instance.

(Zděděno od Object)
IndexOf(String, Char)

Vyhledá zadaný znak a vrátí index založený na nule prvního výskytu v rámci celého zdrojového řetězce.Searches for the specified character and returns the zero-based index of the first occurrence within the entire source string.

IndexOf(String, Char, CompareOptions)

Vyhledá zadaný znak a vrátí index založený na nule prvního výskytu v rámci celého zdrojového řetězce pomocí zadané CompareOptions hodnoty.Searches for the specified character and returns the zero-based index of the first occurrence within the entire source string using the specified CompareOptions value.

IndexOf(String, Char, Int32)

Vyhledá zadaný znak a vrátí index založený na nule prvního výskytu v rámci oddílu zdrojového řetězce, který se rozšíří ze zadaného indexu na konec řetězce.Searches for the specified character and returns the zero-based index of the first occurrence within the section of the source string that extends from the specified index to the end of the string.

IndexOf(String, Char, Int32, CompareOptions)

Vyhledá zadaný znak a vrátí index založený na nule prvního výskytu v rámci oddílu zdrojového řetězce, který se rozšíří ze zadaného indexu na konec řetězce pomocí zadané CompareOptions hodnoty.Searches for the specified character and returns the zero-based index of the first occurrence within the section of the source string that extends from the specified index to the end of the string using the specified CompareOptions value.

IndexOf(String, Char, Int32, Int32)

Vyhledá zadaný znak a vrátí index založený na nule prvního výskytu v rámci oddílu zdrojového řetězce, který začíná zadaným indexem a obsahuje zadaný počet prvků.Searches for the specified character and returns the zero-based index of the first occurrence within the section of the source string that starts at the specified index and contains the specified number of elements.

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

Vyhledá zadaný znak a vrátí index založený na nule prvního výskytu v rámci oddílu zdrojového řetězce, který začíná zadaným indexem a obsahuje zadaný počet prvků, které používají zadanou CompareOptions hodnotu.Searches for the specified character and returns the zero-based index of the first occurrence within the section of the source string that starts at the specified index and contains the specified number of elements using the specified CompareOptions value.

IndexOf(String, String)

Vyhledá zadaný podřetězec a vrátí index založený na nule prvního výskytu v rámci celého zdrojového řetězce.Searches for the specified substring and returns the zero-based index of the first occurrence within the entire source string.

IndexOf(String, String, CompareOptions)

Vyhledá zadaný podřetězec a vrátí index založený na nule prvního výskytu v rámci celého zdrojového řetězce pomocí zadané CompareOptions hodnoty.Searches for the specified substring and returns the zero-based index of the first occurrence within the entire source string using the specified CompareOptions value.

IndexOf(String, String, Int32)

Vyhledá zadaný podřetězec a vrátí index založený na nule prvního výskytu v rámci oddílu zdrojového řetězce, který se rozšíří ze zadaného indexu na konec řetězce.Searches for the specified substring and returns the zero-based index of the first occurrence within the section of the source string that extends from the specified index to the end of the string.

IndexOf(String, String, Int32, CompareOptions)

Vyhledá zadaný podřetězec a vrátí index založený na nule prvního výskytu v rámci oddílu zdrojového řetězce, který rozšiřuje ze zadaného indexu na konec řetězce pomocí zadané CompareOptions hodnoty.Searches for the specified substring and returns the zero-based index of the first occurrence within the section of the source string that extends from the specified index to the end of the string using the specified CompareOptions value.

IndexOf(String, String, Int32, Int32)

Vyhledá zadaný podřetězec a vrátí index založený na nule prvního výskytu v rámci oddílu zdrojového řetězce, který začíná zadaným indexem a obsahuje zadaný počet prvků.Searches for the specified substring and returns the zero-based index of the first occurrence within the section of the source string that starts at the specified index and contains the specified number of elements.

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

Vyhledá zadaný podřetězec a vrátí index založený na nule prvního výskytu v rámci oddílu zdrojového řetězce, který začíná zadaným indexem a obsahuje zadaný počet prvků, které používají zadanou CompareOptions hodnotu.Searches for the specified substring and returns the zero-based index of the first occurrence within the section of the source string that starts at the specified index and contains the specified number of elements using the specified CompareOptions value.

IsPrefix(String, String)

Určuje, zda zadaný zdrojový řetězec začíná zadanou předponou.Determines whether the specified source string starts with the specified prefix.

IsPrefix(String, String, CompareOptions)

Určuje, zda zadaný zdrojový řetězec začíná zadanou předponou pomocí zadané CompareOptions hodnoty.Determines whether the specified source string starts with the specified prefix using the specified CompareOptions value.

IsSortable(Char)

Označuje, zda lze zadaný znak Unicode seřadit.Indicates whether a specified Unicode character is sortable.

IsSortable(String)

Určuje, zda je zadaný řetězec kódování Unicode.Indicates whether a specified Unicode string is sortable.

IsSuffix(String, String)

Určuje, zda zadaný zdrojový řetězec končí zadanou příponou.Determines whether the specified source string ends with the specified suffix.

IsSuffix(String, String, CompareOptions)

Určuje, zda zadaný zdrojový řetězec končí zadanou příponou, a to pomocí CompareOptions zadané hodnoty.Determines whether the specified source string ends with the specified suffix using the specified CompareOptions value.

LastIndexOf(String, Char)

Vyhledá zadaný znak a vrátí index posledního výskytu v rámci celého zdrojového řetězce na základě nuly.Searches for the specified character and returns the zero-based index of the last occurrence within the entire source string.

LastIndexOf(String, Char, CompareOptions)

Vyhledá zadaný znak a vrátí index s hodnotou nula posledního výskytu v rámci celého zdrojového řetězce pomocí zadané CompareOptions hodnoty.Searches for the specified character and returns the zero-based index of the last occurrence within the entire source string using the specified CompareOptions value.

LastIndexOf(String, Char, Int32)

Vyhledá zadaný znak a vrátí index posledního výskytu od nuly v rámci oddílu zdrojového řetězce, který se rozšíří od začátku řetězce do zadaného indexu.Searches for the specified character and returns the zero-based index of the last occurrence within the section of the source string that extends from the beginning of the string to the specified index.

LastIndexOf(String, Char, Int32, CompareOptions)

Vyhledá zadaný znak a vrátí index posledního výskytu od nuly v rámci oddílu zdrojového řetězce, který se rozšíří od začátku řetězce do zadaného indexu pomocí zadané CompareOptions hodnoty.Searches for the specified character and returns the zero-based index of the last occurrence within the section of the source string that extends from the beginning of the string to the specified index using the specified CompareOptions value.

LastIndexOf(String, Char, Int32, Int32)

Vyhledá zadaný znak a vrátí index posledního výskytu od nuly v rámci oddílu zdrojového řetězce, který obsahuje zadaný počet prvků a končí v zadaném indexu.Searches for the specified character and returns the zero-based index of the last occurrence within the section of the source string that contains the specified number of elements and ends at the specified index.

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

Vyhledá zadaný znak a vrátí index posledního výskytu od nuly v rámci oddílu zdrojového řetězce, který obsahuje zadaný počet prvků a končí zadaným indexem pomocí zadané CompareOptions hodnoty.Searches for the specified character and returns the zero-based index of the last occurrence within the section of the source string that contains the specified number of elements and ends at the specified index using the specified CompareOptions value.

LastIndexOf(String, String)

Vyhledá zadaný podřetězec a vrátí index s hodnotou nula posledního výskytu v rámci celého zdrojového řetězce.Searches for the specified substring and returns the zero-based index of the last occurrence within the entire source string.

LastIndexOf(String, String, CompareOptions)

Vyhledá zadaný podřetězec a vrátí index s hodnotou nula posledního výskytu v rámci celého zdrojového řetězce pomocí zadané CompareOptions hodnoty.Searches for the specified substring and returns the zero-based index of the last occurrence within the entire source string using the specified CompareOptions value.

LastIndexOf(String, String, Int32)

Vyhledá zadaný podřetězec a vrátí index posledního výskytu z nuly v rámci oddílu zdrojového řetězce, který se rozšíří od začátku řetězce do zadaného indexu.Searches for the specified substring and returns the zero-based index of the last occurrence within the section of the source string that extends from the beginning of the string to the specified index.

LastIndexOf(String, String, Int32, CompareOptions)

Vyhledá zadaný podřetězec a vrátí index posledního výskytu z nuly v rámci oddílu zdrojového řetězce, který se rozšíří od začátku řetězce do zadaného indexu pomocí zadané CompareOptions hodnoty.Searches for the specified substring and returns the zero-based index of the last occurrence within the section of the source string that extends from the beginning of the string to the specified index using the specified CompareOptions value.

LastIndexOf(String, String, Int32, Int32)

Vyhledá zadaný podřetězec a vrátí index posledního výskytu od nuly v rámci oddílu zdrojového řetězce, který obsahuje zadaný počet prvků a končí na zadaném indexu.Searches for the specified substring and returns the zero-based index of the last occurrence within the section of the source string that contains the specified number of elements and ends at the specified index.

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

Vyhledá zadaný podřetězec a vrátí index posledního výskytu od nuly v rámci oddílu zdrojového řetězce, který obsahuje zadaný počet prvků a končí zadaným indexem pomocí zadané CompareOptions hodnoty.Searches for the specified substring and returns the zero-based index of the last occurrence within the section of the source string that contains the specified number of elements and ends at the specified index using the specified CompareOptions value.

MemberwiseClone()

Vytvoří kopii aktuálního Objectseznamu.Creates a shallow copy of the current Object.

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

Vrátí řetězec, který představuje aktuální CompareInfo objekt.Returns a string that represents the current CompareInfo object.

Explicitní implementace rozhraní

IDeserializationCallback.OnDeserialization(Object)

Spustí se po deserializaci celého grafu objektů.Runs when the entire object graph has been deserialized.

Metody rozšíření

GetStringComparer(CompareInfo, CompareOptions)

Vrátí objekt na základě pravidel porovnání řetězců závislých na jazykové verzi zadaného CompareInfo objektu. StringComparerReturns a StringComparer object based on the culture-sensitive string comparison rules of a specified CompareInfo object.

Platí pro

Viz také