SortKey Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje wynik mapowania ciągu na jego klucz sortowania.
public ref class SortKey sealed
public ref class SortKey
public sealed class SortKey
public class SortKey
[System.Serializable]
public class SortKey
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class SortKey
type SortKey = class
[<System.Serializable>]
type SortKey = class
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type SortKey = class
Public NotInheritable Class SortKey
Public Class SortKey
- Dziedziczenie
-
SortKey
- Atrybuty
Przykłady
Poniższy przykład porównuje ciąg "llama" przy użyciu kultur tradycyjnych "en-US" i "es-ES" oraz "en-US" i "es-ES".
using namespace System;
using namespace System::Globalization;
int main()
{
// Creates a SortKey using the en-US culture.
CultureInfo^ MyCI = gcnew CultureInfo( "en-US",false );
CompareInfo^ myComp_enUS = MyCI->CompareInfo;
SortKey^ mySK1 = myComp_enUS->GetSortKey( "llama" );
// Creates a SortKey using the es-ES culture with international sort.
MyCI = gcnew CultureInfo( "es-ES",false );
CompareInfo^ myComp_esES = MyCI->CompareInfo;
SortKey^ mySK2 = myComp_esES->GetSortKey( "llama" );
// Creates a SortKey using the es-ES culture with traditional sort.
MyCI = gcnew CultureInfo( 0x040A,false );
CompareInfo^ myComp_es = MyCI->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 S"llama" in en-US and in es-ES with international sort : 0
Comparing S"llama" in en-US and in es-ES with traditional sort : -1
*/
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
*/
Imports System.Globalization
Public Class SamplesSortKey
Public Shared Sub Main()
' Creates a SortKey using the en-US culture.
Dim myComp_enUS As CompareInfo = New CultureInfo("en-US", False).CompareInfo
Dim mySK1 As SortKey = myComp_enUS.GetSortKey("llama")
' Creates a SortKey using the es-ES culture with international sort.
Dim myComp_esES As CompareInfo = New CultureInfo("es-ES", False).CompareInfo
Dim mySK2 As SortKey = myComp_esES.GetSortKey("llama")
' Creates a SortKey using the es-ES culture with traditional sort.
Dim myComp_es As CompareInfo = New CultureInfo(&H40A, False).CompareInfo
Dim mySK3 As SortKey = 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))
End Sub
End Class
'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
W poniższym przykładzie pokazano, jak można użyć SortKey klasy w celu zwiększenia wydajności w aplikacji, która opiera się szeroko na sortowaniu i wyszukiwaniu dużej tablicy. W tym przykładzie zostanie utworzona nieurządkowana tablica nazw, która w tym przypadku ma 13 elementów. Następnie przechowuje klucz sortowania każdej nazwy w tablicy równoległej, którą przekazuje do Sort(Array, Array) metody. Wynik jest posortowaną tablicą. W tym przykładzie przeszukuje tablicę dla trzech ciągów. Dla każdego ciągu wyszukiwania wywołuje GetSortKey(String, CompareOptions) metodę w celu pobrania klucza sortowania ciągu, a następnie wywołuje Array.FindIndex metodę w celu pobrania indeksu tego klucza sortowania w tablicy kluczy sortowania. Ponieważ nazwy i sortowanie tablic kluczy są równoległe, zwracany indeks jest również indeksem nazwy w tablicy names
.
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
Imports System.Globalization
Module Example
Public Sub Main()
' Define names.
Dim names() As String = { "Adam", "Ignatius", "Batholomew",
"Gregory", "Clement", "Frances",
"Harold", "Dalmatius", "Edgar",
"John", "Benedict", "Paul", "George" }
Dim sortKeys(names.Length - 1) As SortKey
Dim ci As CompareInfo = CultureInfo.CurrentCulture.CompareInfo
For ctr As Integer = 0 To names.Length - 1
sortKeys(ctr) = ci.GetSortKey(names(ctr), CompareOptions.IgnoreCase)
Next
' Sort array based on value of sort keys.
Array.Sort(names, sortKeys)
Console.WriteLine("Sorted array: ")
For Each name In names
Console.WriteLine(name)
Next
Console.WriteLine()
Dim namesToFind() As String = { "Paul", "PAUL", "Wilberforce" }
Console.WriteLine("Searching an array:")
For Each nameToFind In namesToFind
Dim searchKey As SortKey = ci.GetSortKey(nameToFind, CompareOptions.IgnoreCase)
Dim index As Integer = Array.FindIndex(sortKeys,
Function(x) x.Equals(searchKey))
If index >= 0 Then
Console.WriteLine("{0} found at index {1}: {2}", nameToFind,
index, names(index))
Else
Console.WriteLine("{0} not found", nameToFind)
End If
Next
End Sub
End Module
' 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
Uwagi
Aby uzyskać więcej informacji na temat tego interfejsu API, zobacz Uwagi dotyczące dodatkowego interfejsu API dla elementu SortKey.
Właściwości
KeyData |
Pobiera tablicę bajtów reprezentującą bieżący SortKey obiekt. |
OriginalString |
Pobiera oryginalny ciąg użyty do utworzenia bieżącego SortKey obiektu. |
Metody
Compare(SortKey, SortKey) |
Porównuje dwa klucze sortowania. |
Equals(Object) |
Określa, czy określony obiekt jest równy bieżącemu SortKey obiektowi. |
GetHashCode() |
Służy jako funkcja skrótu dla bieżącego SortKey obiektu, który jest odpowiedni dla algorytmów tworzenia skrótów i struktur danych, takich jak tabela skrótów. |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący SortKey obiekt. |