Lire en anglais

Partager via


SortKey Classe

Définition

Représente le résultat du mappage d'une chaîne à sa clé de tri.

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
Héritage
SortKey
Attributs

Exemples

L’exemple suivant compare la chaîne « llama » en utilisant les cultures « en-US » et « es-ES » et les cultures traditionnelles « en-US » et « es-ES ».

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

L’exemple suivant montre comment utiliser la classe pour améliorer les SortKey performances dans une application qui s’appuie largement sur le tri et la recherche d’un grand tableau. L’exemple crée un tableau non trié de noms, qui dans ce cas comporte 13 éléments. Il stocke ensuite la clé de tri de chaque nom dans un tableau parallèle, qu’il transmet à la Sort(Array, Array) méthode . Le résultat est un tableau trié. L’exemple recherche ensuite trois chaînes dans le tableau. Pour chaque chaîne de recherche, elle appelle la GetSortKey(String, CompareOptions) méthode pour récupérer la clé de tri de la chaîne, puis appelle la Array.FindIndex méthode pour récupérer l’index de cette clé de tri dans le tableau de clés de tri. Étant donné que les tableaux de clés de nom et de tri sont parallèles, l’index retourné est également l’index du nom dans le names tableau.

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

Remarques

Pour plus d’informations sur cette API, consultez Remarques supplémentaires sur l’API pour SortKey.

Propriétés

KeyData

Obtient le tableau d’octets qui représente l’objet SortKey actuel.

OriginalString

Obtient la chaîne d’origine utilisée pour créer l’objet SortKey actuel.

Méthodes

Compare(SortKey, SortKey)

Compare deux clés de tri.

Equals(Object)

Détermine si l'objet spécifié est identique à l'objet SortKey actuel.

GetHashCode()

Est utilisé comme fonction de hachage pour l’objet SortKey actuel et convient aux algorithmes de hachage et aux structures de données, comme une table de hachage.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet SortKey actuel.

S’applique à

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

Voir aussi