Auf Englisch lesen

Teilen über


SortKey Klasse

Definition

Stellt das Ergebnis der Zuordnung einer Zeichenfolge zum zugehörigen Sortierschlüssel dar.

C#
public sealed class SortKey
C#
public class SortKey
C#
[System.Serializable]
public class SortKey
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class SortKey
Vererbung
SortKey
Attribute

Beispiele

Im folgenden Beispiel wird die Zeichenfolge "lama" mit den Kulturen "en-US" und "es-ES" und den traditionellen Kulturen "en-US" und "es-ES" verglichen.

C#
using System;
using System.Globalization;

public class SamplesSortKey  {

   public static void Main()  {

      // Creates a SortKey using the en-US culture.
      CompareInfo myComp_enUS = new CultureInfo("en-US",false).CompareInfo;
      SortKey mySK1 = myComp_enUS.GetSortKey( "llama" );

      // Creates a SortKey using the es-ES culture with international sort.
      CompareInfo myComp_esES = new CultureInfo("es-ES",false).CompareInfo;
      SortKey mySK2 = myComp_esES.GetSortKey( "llama" );

      // Creates a SortKey using the es-ES culture with traditional sort.
      CompareInfo myComp_es   = new CultureInfo(0x040A,false).CompareInfo;
      SortKey mySK3 = myComp_es.GetSortKey( "llama" );

      // Compares the en-US SortKey with each of the es-ES SortKey objects.
      Console.WriteLine( "Comparing \"llama\" in en-US and in es-ES with international sort : {0}", SortKey.Compare( mySK1, mySK2 ) );
      Console.WriteLine( "Comparing \"llama\" in en-US and in es-ES with traditional sort   : {0}", SortKey.Compare( mySK1, mySK3 ) );
   }
}

/*
This code produces the following output.

Comparing "llama" in en-US and in es-ES with international sort : 0
Comparing "llama" in en-US and in es-ES with traditional sort   : -1
*/

Das folgende Beispiel zeigt, wie Sie die -Klasse verwenden können, um die SortKey Leistung in einer Anwendung zu verbessern, die stark auf das Sortieren und Durchsuchen eines großen Arrays angewiesen ist. Im Beispiel wird ein ungeordnetes Array von Namen erstellt, das in diesem Fall über 13 Elemente verfügt. Anschließend wird der Sortierschlüssel jedes Namens in einem parallelen Array gespeichert, das an die Sort(Array, Array) -Methode übergeben wird. Das Ergebnis ist ein sortiertes Array. Im Beispiel wird dann das Array nach drei Zeichenfolgen durchsucht. Für jede Suchzeichenfolge ruft sie die GetSortKey(String, CompareOptions) -Methode auf, um den Sortierschlüssel der Zeichenfolge abzurufen, und ruft dann die Array.FindIndex -Methode auf, um den Index dieses Sortierschlüssels im Array der Sortierschlüssel abzurufen. Da der Name und die Sortierschlüsselarrays parallel sind, ist der zurückgegebene Index auch der Index des Namens im names Array.

C#
using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      // Define names.
      String[] names= { "Adam", "Ignatius", "Batholomew", "Gregory",
                        "Clement", "Frances", "Harold", "Dalmatius",
                        "Edgar", "John", "Benedict", "Paul", "George" };
      SortKey[] sortKeys = new SortKey[names.Length];
      CompareInfo ci = CultureInfo.CurrentCulture.CompareInfo;

      for (int ctr = 0; ctr < names.Length; ctr++)
         sortKeys[ctr] = ci.GetSortKey(names[ctr], CompareOptions.IgnoreCase);

      // Sort array based on value of sort keys.
      Array.Sort(names, sortKeys);

      Console.WriteLine("Sorted array: ");
      foreach (var name in names)
         Console.WriteLine(name);

      Console.WriteLine();

      String[] namesToFind = { "Paul", "PAUL", "Wilberforce" };

      Console.WriteLine("Searching an array:");
      foreach (var nameToFind in namesToFind) {
         SortKey searchKey = ci.GetSortKey(nameToFind, CompareOptions.IgnoreCase);
         int index = Array.FindIndex(sortKeys, (x) => x.Equals(searchKey));
         if (index >= 0)
            Console.WriteLine("{0} found at index {1}: {2}", nameToFind,
                              index, names[index]);
         else
            Console.WriteLine("{0} not found", nameToFind);
      }
   }
}
// The example displays the following output:
//       Sorted array:
//       Adam
//       Batholomew
//       Benedict
//       Clement
//       Dalmatius
//       Edgar
//       Frances
//       George
//       Gregory
//       Harold
//       Ignatius
//       John
//       Paul
//
//       Searching an array:
//       Paul found at index 12: Paul
//       PAUL found at index 12: Paul
//       Wilberforce not found

Hinweise

Weitere Informationen zu dieser API finden Sie unter Ergänzende API-Hinweise für SortKey.

Eigenschaften

KeyData

Ruft das Bytearray ab, das das aktuelle SortKey-Objekt darstellt.

OriginalString

Ruft die ursprüngliche Zeichenfolge ab, mit der das aktuelle SortKey-Objekt erstellt wurde.

Methoden

Compare(SortKey, SortKey)

Vergleicht zwei Sortierschlüssel.

Equals(Object)

Bestimmt, ob das angegebene Objekt und das aktuelle SortKey-Objekt gleich sind.

GetHashCode()

Fungiert als Hashfunktion für das aktuelle SortKey-Objekt, die sich für die Verwendung in Hashalgorithmen und -datenstrukturen eignet, z. B. in einer Hashtabelle.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle SortKey-Objekt darstellt.

Gilt für:

Produkt Versionen
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 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 2.0, 2.1

Weitere Informationen