Assembly : mscorlib (dans mscorlib.dll)
Syntaxe<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public Class SortedList Implements IDictionary, ICollection, IEnumerable, ICloneable
Dim instance As SortedList
[SerializableAttribute] [ComVisibleAttribute(true)] public class SortedList : IDictionary, ICollection, IEnumerable, ICloneable
[SerializableAttribute] [ComVisibleAttribute(true)] public ref class SortedList : IDictionary, ICollection, IEnumerable, ICloneable
/** @attribute SerializableAttribute() */ /** @attribute ComVisibleAttribute(true) */ public class SortedList implements IDictionary, ICollection, IEnumerable, ICloneable
SerializableAttribute ComVisibleAttribute(true) public class SortedList implements IDictionary, ICollection, IEnumerable, ICloneable
NotesPour la version générique de cette collection, consultez System.Collections.Generic.SortedList.
Un élément SortedList est accessible par sa clé, au même titre qu'un élément d'une implémentation de IDictionary, ou par son index, comme un élément d'une implémentation de IList.
SortedList maintient en interne deux tableaux pour stocker les éléments de la liste ; c'est-à-dire un tableau pour les clés et un autre pour les valeurs associées. Chaque élément est une paire clé/valeur à laquelle on peut accéder en tant qu'objet DictionaryEntry. Une clé ne peut pas être référence Null (Nothing en Visual Basic), contrairement à une valeur.
La capacité de SortedList correspond au nombre d'éléments que peut contenir SortedList. La capacité initiale par défaut de SortedList est 0. Lorsque des éléments sont ajoutés à SortedList, la capacité augmente automatiquement par réallocation. La capacité peut être diminuée en appelant TrimToSize ou en définissant explicitement la propriété Capacity.
Les éléments de SortedList sont triés par les clés, suivant une implémentation spécifique de IComparer spécifiée quand SortedList est créé ou suivant l'implémentation de IComparable fournie par les clés elles-mêmes. Dans les deux cas, SortedList ne tolère pas les clés dupliquées.
La séquence d'index est basée sur la séquence de tri. Quand un élément est ajouté, il est inséré dans SortedList dans l'ordre de tri adéquat, et l'indexation s'ajuste en conséquence. Quand un élément est supprimé, l'indexation s'ajuste aussi en conséquence. Par conséquent, l'index d'une paire clé/valeur spécifique peut changer en fonction de l'ajout ou de la suppression d'éléments de SortedList.
Les opérations sur SortedList ont tendance à être plus lentes que les opérations sur Hashtable en raison du tri. Cependant, un objet SortedList est plus flexible, car il permet l'accès aux valeurs par l'intermédiaire des clés associées ou des index.
Il est possible d'accéder aux éléments de cette collection en utilisant un index d'entiers. Les index de cette collection sont des index de base zéro.
L'instruction foreach du langage C# (for each en Visual Basic) requiert le type de chaque élément de la collection. Étant donné que chaque élément de SortedList est une paire clé/valeur, le type d'élément n'est pas le type de la clé, ni le type de la valeur. Le type d'élément est plutôt DictionaryEntry. Par exemple :
foreach (DictionaryEntry de in mySortedList) {...}
For Each de As DictionaryEntry In mySortedList ... Next myDE
L'instruction foreach est un wrapper autour de l'énumérateur, qui permet la lecture à partir de la collection, mais non l'écriture dans celle-ci.
ExempleL'exemple suivant illustre la création et l'initialisation de SortedList et l'impression de ses clés et valeurs.
Imports System Imports System.Collections Imports Microsoft.VisualBasic Public Class SamplesSortedList Public Shared Sub Main() ' Creates and initializes a new SortedList. Dim mySL As New SortedList() mySL.Add("First", "Hello") mySL.Add("Second", "World") mySL.Add("Third", "!") ' Displays the properties and values of the SortedList. Console.WriteLine("mySL") Console.WriteLine(" Count: {0}", mySL.Count) Console.WriteLine(" Capacity: {0}", mySL.Capacity) Console.WriteLine(" Keys and Values:") PrintKeysAndValues(mySL) End Sub Public Shared Sub PrintKeysAndValues(myList As SortedList) Console.WriteLine(ControlChars.Tab & "-KEY-" & ControlChars.Tab & _ "-VALUE-") Dim i As Integer For i = 0 To myList.Count - 1 Console.WriteLine(ControlChars.Tab & "{0}:" & ControlChars.Tab & _ "{1}", myList.GetKey(i), myList.GetByIndex(i)) Next i Console.WriteLine() End Sub End Class ' This code produces the following output. ' ' mySL ' Count: 3 ' Capacity: 16 ' Keys and Values: ' -KEY- -VALUE- ' First: Hello ' Second: World ' Third: !
using System; using System.Collections; public class SamplesSortedList { public static void Main() { // Creates and initializes a new SortedList. SortedList mySL = new SortedList(); mySL.Add("First", "Hello"); mySL.Add("Second", "World"); mySL.Add("Third", "!"); // Displays the properties and values of the SortedList. Console.WriteLine( "mySL" ); Console.WriteLine( " Count: {0}", mySL.Count ); Console.WriteLine( " Capacity: {0}", mySL.Capacity ); Console.WriteLine( " Keys and Values:" ); PrintKeysAndValues( mySL ); } public static void PrintKeysAndValues( SortedList myList ) { Console.WriteLine( "\t-KEY-\t-VALUE-" ); for ( int i = 0; i < myList.Count; i++ ) { Console.WriteLine( "\t{0}:\t{1}", myList.GetKey(i), myList.GetByIndex(i) ); } Console.WriteLine(); } } /* This code produces the following output. mySL Count: 3 Capacity: 16 Keys and Values: -KEY- -VALUE- First: Hello Second: World Third: ! */
#using <system.dll> using namespace System; using namespace System::Collections; public ref class SamplesSortedList { public: static void PrintKeysAndValues( SortedList^ myList ) { Console::WriteLine( "\t-KEY-\t-VALUE-" ); for ( int i = 0; i < myList->Count; i++ ) { Console::WriteLine( "\t{0}:\t{1}", myList->GetKey( i ), myList->GetByIndex( i ) ); } Console::WriteLine(); } }; int main() { // Creates and initializes a new SortedList. SortedList^ mySL = gcnew SortedList; mySL->Add( "First", "Hello" ); mySL->Add( "Second", "World" ); mySL->Add( "Third", "!" ); // Displays the properties and values of the SortedList. Console::WriteLine( "mySL" ); Console::WriteLine( " Count: {0}", mySL->Count ); Console::WriteLine( " Capacity: {0}", mySL->Capacity ); Console::WriteLine( " Keys and Values:" ); SamplesSortedList::PrintKeysAndValues( mySL ); } /* This code produces the following output. mySL Count: 3 Capacity: 16 Keys and Values: -KEY- -VALUE- First: Hello Second: World Third: ! */
import System.*; import System.Collections.*; public class SamplesSortedList { public static void main(String[] args) { // Creates and initializes a new SortedList. SortedList mySL = new SortedList(); mySL.Add("First", "Hello"); mySL.Add("Second", "World"); mySL.Add("Third", "!"); // Displays the properties and values of the SortedList. Console.WriteLine("mySL"); Console.WriteLine(" Count: {0}", System.Convert.ToString(mySL.get_Count())); Console.WriteLine(" Capacity: {0}", System.Convert.ToString(mySL.get_Capacity())); Console.WriteLine(" Keys and Values:"); PrintKeysAndValues(mySL); } //main public static void PrintKeysAndValues(SortedList myList) { Console.WriteLine("\t-KEY-\t-VALUE-"); for (int i = 0; i < myList.get_Count(); i++) { Console.WriteLine("\t{0}:\t{1}", myList.GetKey(i), myList.GetByIndex(i)); } Console.WriteLine(); } //PrintKeysAndValues } //SamplesSortedList /* This code produces the following output. mySL Count: 3 Capacity: 16 Keys and Values: -KEY- -VALUE- First: Hello Second: World Third: ! */
Sécurité des threadsLes membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
SortedList peut prendre simultanément en charge plusieurs lecteurs, tant que la collection n'est pas modifiée. Afin de garantir la sécurité des threads de SortedList, toutes les opérations doivent être effectuées par l'intermédiaire du wrapper retourné par la méthode Synchronized.
L'énumération d'une collection n'est intrinsèquement pas une procédure thread-safe. Même lorsqu'une collection est synchronisée, les autres threads peuvent toujours modifier la collection, ce qui entraîne la levée d'une exception par l'énumérateur. Pour garantir la sécurité des threads au cours de l'énumération, vous pouvez soit verrouiller la collection pendant toute l'énumération, soit intercepter les exceptions résultant des modifications apportées par les autres threads.
Plates-formesWindows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition
Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.
Informations de version
Outils (masquer)
S'enregistrer
Liste des Membres
Qui est en ligne?
FAQ