Číst v angličtině

Sdílet prostřednictvím


StringComparer Třída

Definice

Představuje operaci porovnání řetězců, která používá konkrétní případ a pravidla porovnání založené na jazykové verzi nebo řadové porovnání.

C#
public abstract class StringComparer : System.Collections.Generic.IComparer<string>, System.Collections.Generic.IEqualityComparer<string>, System.Collections.IComparer, System.Collections.IEqualityComparer
C#
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public abstract class StringComparer : System.Collections.Generic.IComparer<string>, System.Collections.Generic.IEqualityComparer<string>, System.Collections.IComparer, System.Collections.IEqualityComparer
Dědičnost
StringComparer
Atributy
Implementuje

Příklady

Následující příklad ukazuje vlastnosti a metodu CreateStringComparer třídy . Příklad ukazuje, jak různé StringComparer objekty řadí tři verze latinky písmeno I.

C#
// This example demonstrates members of the 
// System.StringComparer class.

using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Threading;

class Sample 
{
    public static void Main() 
    {
        // Create a list of string.
        List<string> list = new List<string>();

        // Get the tr-TR (Turkish-Turkey) culture.
        CultureInfo turkish = new CultureInfo("tr-TR");

        // Get the culture that is associated with the current thread.
        CultureInfo thisCulture = Thread.CurrentThread.CurrentCulture;

        // Get the standard StringComparers.
        StringComparer invCmp =   StringComparer.InvariantCulture;
        StringComparer invICCmp = StringComparer.InvariantCultureIgnoreCase;
        StringComparer currCmp = StringComparer.CurrentCulture;
        StringComparer currICCmp = StringComparer.CurrentCultureIgnoreCase;
        StringComparer ordCmp = StringComparer.Ordinal;
        StringComparer ordICCmp = StringComparer.OrdinalIgnoreCase;

        // Create a StringComparer that uses the Turkish culture and ignores case.
        StringComparer turkICComp = StringComparer.Create(turkish, true);

        // Define three strings consisting of different versions of the letter I.
        // LATIN CAPITAL LETTER I (U+0049)
        string capitalLetterI = "I";  

        // LATIN SMALL LETTER I (U+0069)
        string smallLetterI   = "i";

        // LATIN SMALL LETTER DOTLESS I (U+0131)
        string smallLetterDotlessI = "\u0131";

        // Add the three strings to the list.
        list.Add(capitalLetterI);
        list.Add(smallLetterI);
        list.Add(smallLetterDotlessI);

        // Display the original list order.
        Display(list, "The original order of the list entries...");

        // Sort the list using the invariant culture.
        list.Sort(invCmp);
        Display(list, "Invariant culture...");
        list.Sort(invICCmp);
        Display(list, "Invariant culture, ignore case...");

        // Sort the list using the current culture.
        Console.WriteLine("The current culture is \"{0}\".", thisCulture.Name);
        list.Sort(currCmp);
        Display(list, "Current culture...");
        list.Sort(currICCmp);
        Display(list, "Current culture, ignore case...");

        // Sort the list using the ordinal value of the character code points.
        list.Sort(ordCmp);
        Display(list, "Ordinal...");
        list.Sort(ordICCmp);
        Display(list, "Ordinal, ignore case...");

        // Sort the list using the Turkish culture, which treats LATIN SMALL LETTER 
        // DOTLESS I differently than LATIN SMALL LETTER I.
        list.Sort(turkICComp);
        Display(list, "Turkish culture, ignore case...");
    }

    public static void Display(List<string> lst, string title)
    {
        Char c;
        int  codePoint;
        Console.WriteLine(title);
        foreach (string s in lst)
        {
            c = s[0];
            codePoint = Convert.ToInt32(c);
            Console.WriteLine("0x{0:x}", codePoint); 
        }
        Console.WriteLine();
    }
}
/*
This code example produces the following results:

The original order of the list entries...
0x49
0x69
0x131

Invariant culture...
0x69
0x49
0x131

Invariant culture, ignore case...
0x49
0x69
0x131

The current culture is "en-US".
Current culture...
0x69
0x49
0x131

Current culture, ignore case...
0x49
0x69
0x131

Ordinal...
0x49
0x69
0x131

Ordinal, ignore case...
0x69
0x49
0x131

Turkish culture, ignore case...
0x131
0x49
0x69

*/

Poznámky

Další informace o tomto rozhraní API najdete v tématu Doplňkové poznámky k rozhraní API pro StringComparer.

Konstruktory

StringComparer()

Inicializuje novou instanci StringComparer třídy .

Vlastnosti

CurrentCulture

StringComparer Získá objekt, který provádí porovnávání řetězců s rozlišováním velkých a malých písmen pomocí pravidel porovnání slov aktuální jazykové verze.

CurrentCultureIgnoreCase

StringComparer Získá objekt, který provádí porovnávání řetězců bez rozlišování velkých a malých písmen pomocí pravidel porovnání slov aktuální jazykové verze.

InvariantCulture

StringComparer Získá objekt, který provádí řetězcové porovnání rozlišovat velká a malá písmena pomocí slov porovnávací pravidla invariantní jazykové verze.

InvariantCultureIgnoreCase

StringComparer Získá objekt, který provádí porovnávání řetězců bez rozlišování velkých a malých písmen pomocí slov pravidla porovnání invariantní jazykové verze.

Ordinal

StringComparer Získá objekt, který provádí porovnání řadových řetězců s rozlišováním velkých a malých písmen.

OrdinalIgnoreCase

StringComparer Získá objekt, který provádí porovnání řadových řetězců bez rozlišování velkých a malých písmen.

Metody

Compare(Object, Object)

Při přepsání v odvozené třídě porovná dva objekty a vrátí indikaci jejich relativního pořadí řazení.

Compare(String, String)

Při přepsání v odvozené třídě porovná dva řetězce a vrátí indikaci jejich relativního pořadí řazení.

Create(CultureInfo, Boolean)

Vytvoří StringComparer objekt, který porovnává řetězce podle pravidel zadané jazykové verze.

Create(CultureInfo, CompareOptions)

Vytvoří StringComparer objekt, který porovnává řetězce podle pravidel zadané jazykové verze a možností řetězce.

Equals(Object, Object)

Při přepsání v odvozené třídě označuje, zda jsou dva objekty rovny.

Equals(Object)

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

(Zděděno od Object)
Equals(String, String)

Při přepsání v odvozené třídě označuje, zda jsou dva řetězce stejné.

FromComparison(StringComparison)

Převede zadanou StringComparison instanci na StringComparer instanci.

GetHashCode()

Slouží jako výchozí hashovací funkce.

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

Při přepsání v odvozené třídě získá kód hash pro zadaný objekt.

GetHashCode(String)

Při přepsání v odvozené třídě získá kód hash pro zadaný řetězec.

GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
IsWellKnownCultureAwareComparer(IEqualityComparer<String>, CompareInfo, CompareOptions)

Určuje, zda je zadaný IEqualityComparer<T> nástroj pro porovnávání řetězců s podporou jazykové verze.

IsWellKnownOrdinalComparer(IEqualityComparer<String>, Boolean)

Určuje, zda zadaný IEqualityComparer<T> je dobře známý řadový řetězec porovnávač.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

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

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

(Zděděno od Object)

Explicitní implementace rozhraní

IComparer.Compare(Object, Object)

Porovná dva objekty a vrátí hodnotu označující, zda je jeden menší než, roven nebo větší než druhý.

IEqualityComparer.Equals(Object, Object)

Určuje, zda jsou zadané objekty stejné.

IEqualityComparer.GetHashCode(Object)

Vrátí kód hash pro zadaný objekt.

Platí pro

Produkt Verze
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Viz také