Markieren Sie das Kontrollkästchen Englisch, um die englische Version dieses Artikels anzuzeigen. Sie können den englischen Text auch in einem Popup-Fenster einblenden, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch
Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

StringComparer-Klasse

Stellt einen Zeichenfolgenvergleichsvorgang dar, der bestimmte Regeln zur Groß- und Kleinschreibung und kulturbasierte bzw. Ordinalvergleichsregeln verwendet.

System.Object
  System.StringComparer

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class StringComparer : IComparer, 
	IEqualityComparer, IComparer<string>, IEqualityComparer<string>

Der StringComparer-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Geschützte MethodeUnterstützt von XNA FrameworkStringComparerInitialisiert eine neue Instanz der StringComparer-Klasse.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftStatischer MemberUnterstützt von XNA Framework5hc8kytd.PortableClassLibrary(de-de,VS.100).gifCurrentCultureRuft ein StringComparer-Objekt ab, das mit den Wortvergleichsregeln der aktuellen Kultur einen Zeichenfolgenvergleich mit Berücksichtigung von Groß- und Kleinschreibung ausführt.
Öffentliche EigenschaftStatischer MemberUnterstützt von XNA Framework5hc8kytd.PortableClassLibrary(de-de,VS.100).gifCurrentCultureIgnoreCaseRuft ein StringComparer-Objekt ab, das Zeichenfolgenvergleiche ohne Unterscheidung der Groß- und Kleinschreibung mit den Wortvergleichsregeln der aktuellen Kultur ausführt.
Öffentliche EigenschaftStatischer MemberUnterstützt von XNA FrameworkInvariantCultureRuft ein StringComparer-Objekt ab, das mit den Wortvergleichsregeln der invarianten Kultur einen Zeichenfolgenvergleich mit Berücksichtigung von Groß- und Kleinschreibung ausführt.
Öffentliche EigenschaftStatischer MemberUnterstützt von XNA FrameworkInvariantCultureIgnoreCaseRuft ein StringComparer-Objekt ab, das mit den Wortvergleichsregeln der invarianten Kultur einen Zeichenfolgenvergleich ohne Berücksichtigung von Groß- und Kleinschreibung ausführt.
Öffentliche EigenschaftStatischer MemberUnterstützt von XNA Framework5hc8kytd.PortableClassLibrary(de-de,VS.100).gifOrdinalRuft ein StringComparer-Objekt ab, das einen Ordinalzeichenfolgenvergleich mit Berücksichtigung der Groß- und Kleinschreibung ausführt.
Öffentliche EigenschaftStatischer MemberUnterstützt von XNA Framework5hc8kytd.PortableClassLibrary(de-de,VS.100).gifOrdinalIgnoreCaseRuft ein StringComparer-Objekt ab, das einen Ordinalzeichenfolgenvergleich ohne Berücksichtigung der Groß- und Kleinschreibung ausführt.
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeUnterstützt von XNA Framework5hc8kytd.PortableClassLibrary(de-de,VS.100).gifCompare(Object, Object)Beim Überschreiben in einer abgeleiteten Klasse wird ein Vergleich von zwei Objekten durchgeführt und eine Angabe der relativen Sortierreihenfolge zurückgegeben.
Öffentliche MethodeUnterstützt von XNA Framework5hc8kytd.PortableClassLibrary(de-de,VS.100).gifCompare(String, String)Beim Überschreiben in einer abgeleiteten Klasse wird ein Vergleich von zwei Zeichenfolgen durchgeführt und eine Angabe der relativen Sortierreihenfolge zurückgegeben.
Öffentliche MethodeStatischer MemberUnterstützt von XNA Framework5hc8kytd.PortableClassLibrary(de-de,VS.100).gifCreateErstellt ein StringComparer-Objekt, das Zeichenfolgen nach den Regeln einer angegebenen Kultur vergleicht.
Öffentliche MethodeUnterstützt von XNA Framework5hc8kytd.PortableClassLibrary(de-de,VS.100).gifEquals(Object)Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA Framework5hc8kytd.PortableClassLibrary(de-de,VS.100).gifEquals(Object, Object)Beim Überschreiben in einer abgeleiteten Klasse wird angegeben, ob zwei Objekte gleich sind.
Öffentliche MethodeUnterstützt von XNA Framework5hc8kytd.PortableClassLibrary(de-de,VS.100).gifEquals(String, String)Beim Überschreiben in einer abgeleiteten Klasse wird angegeben, ob zwei Zeichenfolgen gleich sind.
Geschützte MethodeUnterstützt von XNA Framework5hc8kytd.PortableClassLibrary(de-de,VS.100).gifFinalizeGibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA Framework5hc8kytd.PortableClassLibrary(de-de,VS.100).gifGetHashCode()Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA Framework5hc8kytd.PortableClassLibrary(de-de,VS.100).gifGetHashCode(Object)Ruft beim Überschreiben in einer abgeleiteten Klasse den Hashcode für das angegebene Objekt ab.
Öffentliche MethodeUnterstützt von XNA Framework5hc8kytd.PortableClassLibrary(de-de,VS.100).gifGetHashCode(String)Ruft beim Überschreiben in einer abgeleiteten Klasse den Hashcode für die angegebene Zeichenfolge ab.
Öffentliche MethodeUnterstützt von XNA Framework5hc8kytd.PortableClassLibrary(de-de,VS.100).gifGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Geschützte MethodeUnterstützt von XNA Framework5hc8kytd.PortableClassLibrary(de-de,VS.100).gifMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA Framework5hc8kytd.PortableClassLibrary(de-de,VS.100).gifToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

Ein von der StringComparer-Klasse abgeleitetes Objekt enthält zeichenfolgenbasierte Vergleiche, Gleichheit und Hashcodevorgänge, die sowohl Regeln zur Groß- und Kleinschreibung als auch kulturspezifische Vergleichsregeln berücksichtigen. Sie können die StringComparer-Klasse verwenden, um einen typspezifischen Vergleich zu erstellen, um die Elemente in einer generischen Auflistung zu sortieren. Klassen wie Hashtable, Dictionary<TKey, TValue>, SortedList und SortedList<TKey, TValue> verwenden die StringComparer-Klasse zum Sortieren.

Je nach Definition kann ein durch die StringComparer-Klasse dargestellter Vergleichsvorgang zwischen Groß- und Kleinschreibung unterscheiden oder nicht und entweder nach Wörtern (kulturabhängig) oder nach Ordnungszahlen (nicht kulturabhängig) vergleichen. Weitere Informationen über Vergleichsregeln nach Wörtern und Ordnungszahlen finden Sie unter System.Globalization.CompareOptions.

Implementierte Eigenschaften

Das Verwenden der StringComparer-Klasseneigenschaften erscheint auf den ersten Blick verwirrend und teilweise widersprüchlich. Die StringComparer-Klasse wird abstract deklariert (MustInherit in Visual Basic), das heißt, ihre Member können nur für ein Objekt einer Klasse aufgerufen werden, die von der StringComparer-Klasse abgeleitet wurde. Der vermeintliche Widerspruch liegt darin, dass jede Eigenschaft der StringComparer-Klasse static deklariert wird (Shared in Visual Basic), das heißt, die Eigenschaft kann aufgerufen werden, ohne zuerst eine abgeleitete Klasse zu erstellen.

Sie können eine StringComparer-Eigenschaft direkt aufrufen, weil jede Eigenschaft tatsächlich eine Instanz einer anonymen Klasse zurückgibt, die von der StringComparer-Klasse abgeleitet wurde. Der Typ für jeden Eigenschaftswert ist daher StringComparer, das heißt, nicht der Typ der anonymen Klasse selbst, sondern die Basisklasse der anonymen Klasse. Jede StringComparer-Klasseneigenschaft gibt ein StringComparer-Objekt zurück, das vordefinierte Regeln zur Groß- und Kleinschreibung und für Vergleiche unterstützt.

Im folgenden Codebeispiel werden die Eigenschaften und die Create-Methode der StringComparer-Klasse veranschaulicht. Im Beispiel wird veranschaulicht, wie verschiedene StringComparer-Objekte drei Versionen des lateinischen Buchstaben I sortieren.


// 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

*/


.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Unterstützt in:

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Anzeigen: