(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

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 FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsStringComparerInitialisiert eine neue Instanz der StringComparer-Klasse.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsCurrentCultureRuft 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 FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsCurrentCultureIgnoreCaseRuft 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 FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsOrdinalRuft ein StringComparer-Objekt ab, das einen Ordinalzeichenfolgenvergleich mit Berücksichtigung der Groß- und Kleinschreibung ausführt.
Öffentliche EigenschaftStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsOrdinalIgnoreCaseRuft ein StringComparer-Objekt ab, das einen Ordinalzeichenfolgenvergleich ohne Berücksichtigung der Groß- und Kleinschreibung ausführt.
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeUnterstützt von XNA FrameworkCompare(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 FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsCompare(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 FrameworkUnterstützt von Portable KlassenbibliothekCreateErstellt ein StringComparer-Objekt, das Zeichenfolgen nach den Regeln einer angegebenen Kultur vergleicht.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA FrameworkEquals(Object, Object)Beim Überschreiben in einer abgeleiteten Klasse wird angegeben, ob zwei Objekte gleich sind.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsEquals(String, String)Beim Überschreiben in einer abgeleiteten Klasse wird angegeben, ob zwei Zeichenfolgen gleich sind.
Geschützte MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetHashCode()Fungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA FrameworkGetHashCode(Object)Ruft beim Überschreiben in einer abgeleiteten Klasse den Hashcode für das angegebene Objekt ab.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetHashCode(String)Ruft beim Überschreiben in einer abgeleiteten Klasse den Hashcode für die angegebene Zeichenfolge ab.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Geschützte MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

  NameBeschreibung
Explizite SchnittstellenimplementierungPrivate MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsIComparer.CompareVergleicht zwei Objekte und gibt über den zurückgegebenen Wert an, ob eines der Objekte kleiner, gleich oder größer als das andere Objekt ist.
Explizite SchnittstellenimplementierungPrivate MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsIEqualityComparer.EqualsBestimmt, ob die angegebenen Objekte gleich sind.
Explizite SchnittstellenimplementierungPrivate MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsIEqualityComparer.GetHashCodeGibt einen Hashcode für das angegebene Objekt zurück.
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.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

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

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft