SortVersion-Klasse

Dieser Artikel enthält ergänzende Hinweise zur Referenzdokumentation für diese API.

Sortierung und Zeichenfolgenvergleich in .NET Framework

Über .NET Framework 4 enthielt jede Version von .NET Framework Tabellen, die Sortiergewichtungen und Daten für die Zeichenfolgennormalisierung enthielten und auf einer bestimmten Unicode-Version basieren. In .NET Framework 4.5 und höheren Versionen hängt es vom Betriebssystem ab, ob diese Tabellen vorhanden sind:

  • Unter Windows 7 und früheren Versionen werden die Tabellen weiterhin zum Vergleichen und Sortieren von Zeichenfolgen verwendet.
  • Unter Windows 8 delegiert .NET Framework Zeichenfolgenvergleichs- und Sortiervorgänge an das Betriebssystem.

Folglich kann das Ergebnis eines Zeichenfolgenvergleichs nicht nur von .NET Framework-Version, sondern auch von der Betriebssystemversion abhängen, wie in der folgenden Tabelle dargestellt. Beachten Sie, dass diese Liste der unterstützten Unicode-Versionen lediglich für den Zeichenvergleich und die Sortierung gilt. Sie gilt nicht für die kategorische Klassifizierung von Unicode-Zeichen.

.NET Framework-Version Betriebssystem Unicode-Version
4 Alle Betriebssysteme Unicode 5.0
4.5 und höhere Versionen Windows 7 Unicode 5.0
4.5 und höhere Versionen Windows 8 oder höher Unicode 6.0

Unter Windows 8 hängt die beim Zeichenfolgenvergleich und bei der Sortierung verwendete Unicode-Version von der Version des Betriebssystems ab. Daher können sich die Ergebnisse des Zeichenfolgenvergleichs auch für Anwendungen unterscheiden, die in einer bestimmten Version von .NET Framework ausgeführt werden.

Sortierung und Zeichenfolgenvergleich in .NET Core

Alle Versionen von .NET (Core) verwenden beim Ausführen von Zeichenfolgenvergleichen das zugrunde liegende Betriebssystem. Daher sind die Ergebnisse eines Zeichenfolgenvergleichs oder die Sortierreihenfolge von der Unicode-Version abhängig, die vom Betriebssystem beim Ausführen des Vergleichs verwendet wird. Unter Linux, macOS sowie Windows 10 und höher ermöglichen die Bibliotheken mit internationalen Komponenten für Unicode die Implementierung für Vergleichs- und Sortier-APIs.

Verwenden der SortVersion-Klasse

Die Klasse SortVersion enthält Informationen zur Unicode-Version, die von .NET für den Zeichenfolgenvergleich und die Sortierung verwendet wird. Sie ermöglicht Entwickler*innen das Schreiben von Anwendungen, die Änderungen in der Unicode-Version, die zum Vergleichen und Sortieren der Zeichenfolgen einer Anwendung verwendet wird, erkennen und erfolgreich verarbeiten können.

Sie können ein SortVersion-Objekt auf zwei Arten instanziieren:

  • Durch Aufrufen des SortVersion-Konstruktors, der ein neues SortVersion-Objekt basierend auf einer Versionsnummer und Sortier-ID instanziiert. Dieser Konstruktor ist am nützlichsten, wenn ein SortVersion-Objekt aus gespeicherten Daten neu erstellt wird.
  • Durch Abrufen des Werts der CompareInfo.Version-Eigenschaft. Diese Eigenschaft enthält Informationen zur Unicode-Version, die von der .NET-Implementierung verwendet wird, unter der die Anwendung ausgeführt wird.

Die Klasse SortVersion hat zwei Eigenschaften (FullVersion und SortId), die die Unicode-Version und die spezifische Kultur angeben, die für den Zeichenfolgenvergleich verwendet werden. Die Eigenschaft FullVersion ist ein beliebiger numerischer Wert, der die für den Zeichenfolgenvergleich verwendete Unicode-Version widerspiegelt. Die Eigenschaft SortId ist ein beliebiger Guid-Wert, der die Kultur widerspiegelt, deren Konventionen für den Zeichenfolgenvergleich verwendet werden. Die Werte dieser beiden Eigenschaften sind nur dann wichtig, wenn Sie zwei SortVersion-Objekte mithilfe der Equals-Methode, des Equality-Operators oder des Inequality-Operators vergleichen.

Normalerweise verwenden Sie ein SortVersion-Objekt beim Speichern oder Abrufen einer Form von kulturabhängigen, sortierten Zeichenfolgendaten, z. B. Indizes oder Literalzeichenfolgen selbst. Gehen Sie dazu folgendermaßen vor:

  1. Wenn die sortierten Zeichenfolgendaten gespeichert werden, werden auch die Werte der Eigenschaften FullVersion und SortId gespeichert.

  2. Wenn die sortierten Zeichenfolgendaten abgerufen werden, können Sie das SortVersion-Objekt neu erstellen, das zum Sortieren der Zeichenfolgen verwendet wird, indem Sie den SortVersion-Konstruktor aufrufen.

  3. Dieses neu instanziierte SortVersion-Objekt wird mit einem SortVersion-Objekt verglichen, das die Kultur widerspiegelt, deren Konventionen zum Sortieren der Zeichenfolgendaten verwendet werden.

  4. Wenn die beiden SortVersion-Objekte nicht gleich sind, müssen die Zeichenfolgendaten neu sortiert werden.