SortedList Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente une collection de paires clé/valeur triées par les clés et accessibles par clé et par index.
public ref class SortedList : System::Collections::IDictionary
public ref class SortedList : ICloneable, System::Collections::IDictionary
public class SortedList : System.Collections.IDictionary
public class SortedList : ICloneable, System.Collections.IDictionary
[System.Serializable]
public class SortedList : ICloneable, System.Collections.IDictionary
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class SortedList : ICloneable, System.Collections.IDictionary
type SortedList = class
interface ICollection
interface IEnumerable
interface IDictionary
type SortedList = class
interface ICollection
interface IEnumerable
interface IDictionary
interface ICloneable
[<System.Serializable>]
type SortedList = class
interface IDictionary
interface ICollection
interface IEnumerable
interface ICloneable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type SortedList = class
interface IDictionary
interface ICollection
interface IEnumerable
interface ICloneable
Public Class SortedList
Implements IDictionary
Public Class SortedList
Implements ICloneable, IDictionary
- Héritage
-
SortedList
- Attributs
- Implémente
Exemples
L’exemple de code suivant montre comment créer et initialiser un SortedList objet et comment imprimer ses clés et ses valeurs.
using System;
using System.Collections;
public class SamplesSortedList2
{
public static void Main()
{
// Creates and initializes a new SortedList.
SortedList mySL = new SortedList();
mySL.Add("Third", "!");
mySL.Add("Second", "World");
mySL.Add("First", "Hello");
// 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: !
*/
Imports System.Collections
Public Class SamplesSortedList
Public Shared Sub Main()
' Creates and initializes a new SortedList.
Dim mySL As New SortedList()
mySL.Add("Third", "!")
mySL.Add("Second", "World")
mySL.Add("First", "Hello")
' 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: !
Remarques
Un SortedList élément est accessible par sa clé, comme un élément dans n’importe quelle IDictionary implémentation, ou par son index, comme un élément dans n’importe quelle IList implémentation.
Important
Nous vous déconseillons d’utiliser la classe pour le SortedList nouveau développement. Au lieu de cela, nous vous recommandons d’utiliser la classe générique System.Collections.Generic.SortedList<TKey,TValue> . Pour plus d’informations, consultez Les collections non génériques ne doivent pas être utilisées sur GitHub.
Un SortedList objet gère en interne deux tableaux pour stocker les éléments de la liste ; autrement dit, un tableau pour les clés et un autre tableau pour les valeurs associées. Chaque élément est une paire clé/valeur accessible en tant qu’objet DictionaryEntry . Une clé ne peut pas être null, mais une valeur peut être.
La capacité d’un SortedList objet est le nombre d’éléments qu’il SortedList peut contenir. À mesure que les éléments sont ajoutés à un SortedList, la capacité est automatiquement augmentée en fonction des besoins grâce à la réaffectation. La capacité peut être réduite en appelant TrimToSize ou en définissant explicitement la Capacity propriété.
.NET Framework uniquement : Pour les objets très volumineux SortedList , vous pouvez augmenter la capacité maximale à 2 milliards d’éléments sur un système 64 bits en définissant l’attribut enabled de l’élément <gcAllowVeryLargeObjects>true de configuration sur l’environnement d’exécution.
Les éléments d’un SortedList objet sont triés par les clés en fonction d’une implémentation spécifique IComparer spécifiée lors de la SortedList création ou de l’implémentation IComparable fournie par les clés elles-mêmes. Dans les deux cas, un SortedList n’autorise pas les clés dupliquées.
La séquence d’index est basée sur la séquence de tri. Lorsqu’un élément est ajouté, il est inséré SortedList dans l’ordre de tri correct et l’indexation s’ajuste en conséquence. Lorsqu’un élément est supprimé, l’indexation s’ajuste également en conséquence. Par conséquent, l’index d’une paire clé/valeur spécifique peut changer à mesure que des éléments sont ajoutés ou supprimés de l’objet SortedList .
Les opérations sur un SortedList objet ont tendance à être plus lentes que les opérations sur un Hashtable objet en raison du tri. Toutefois, l’offre SortedList plus de flexibilité en autorisant l’accès aux valeurs par le biais des clés associées ou par le biais des index.
Les éléments de cette collection sont accessibles à l’aide d’un index entier. Les index de cette collection sont basés sur zéro.
L’instruction foreach du langage C# (for each en Visual Basic) retourne un objet du type des éléments de la collection. Étant donné que chaque élément de l’objet SortedList est une paire clé/valeur, le type d’élément n’est pas le type de la clé ou le type de la valeur. Au lieu de cela, le type d’élément est DictionaryEntry. Par exemple:
foreach (DictionaryEntry de in mySortedList)
{
//...
}
For Each de As DictionaryEntry In mySortedList
'...
Next de
L’instruction foreach est un wrapper autour de l’énumérateur, qui autorise uniquement la lecture, pas l’écriture dans la collection.
Constructeurs
| Nom | Description |
|---|---|
| SortedList() |
Initialise une nouvelle instance de la SortedList classe vide, a la capacité initiale par défaut et est triée en fonction de l’interface IComparable implémentée par chaque clé ajoutée à l’objet SortedList . |
| SortedList(IComparer, Int32) |
Initialise une nouvelle instance de la SortedList classe vide, a la capacité initiale spécifiée et est triée en fonction de l’interface spécifiée IComparer . |
| SortedList(IComparer) |
Initialise une nouvelle instance de la SortedList classe vide, a la capacité initiale par défaut et est triée en fonction de l’interface spécifiée IComparer . |
| SortedList(IDictionary, IComparer) |
Initialise une nouvelle instance de la SortedList classe qui contient des éléments copiés à partir du dictionnaire spécifié, a la même capacité initiale que le nombre d’éléments copiés et est triée en fonction de l’interface spécifiée IComparer . |
| SortedList(IDictionary) |
Initialise une nouvelle instance de la SortedList classe qui contient des éléments copiés à partir du dictionnaire spécifié, a la même capacité initiale que le nombre d’éléments copiés et est triée en fonction de l’interface IComparable implémentée par chaque clé. |
| SortedList(Int32) |
Initialise une nouvelle instance de la SortedList classe vide, a la capacité initiale spécifiée et est triée en fonction de l’interface IComparable implémentée par chaque clé ajoutée à l’objet SortedList . |
Propriétés
| Nom | Description |
|---|---|
| Capacity |
Obtient ou définit la capacité d’un SortedList objet. |
| Count |
Obtient le nombre d’éléments contenus dans un SortedList objet. |
| IsFixedSize |
Obtient une valeur indiquant si un SortedList objet a une taille fixe. |
| IsReadOnly |
Obtient une valeur indiquant si un SortedList objet est en lecture seule. |
| IsSynchronized |
Obtient une valeur indiquant si l’accès à un SortedList objet est synchronisé (thread safe). |
| Item[Object] |
Obtient ou définit la valeur associée à une clé spécifique dans un SortedList objet. |
| Keys |
Obtient les clés d’un SortedList objet. |
| SyncRoot |
Obtient un objet qui peut être utilisé pour synchroniser l’accès à un SortedList objet. |
| Values |
Obtient les valeurs d’un SortedList objet. |
Méthodes
| Nom | Description |
|---|---|
| Add(Object, Object) |
Ajoute un élément avec la clé et la valeur spécifiées à un SortedList objet. |
| Clear() |
Supprime tous les éléments d’un SortedList objet. |
| Clone() |
Crée une copie superficielle d’un SortedList objet. |
| Contains(Object) |
Détermine si un SortedList objet contient une clé spécifique. |
| ContainsKey(Object) |
Détermine si un SortedList objet contient une clé spécifique. |
| ContainsValue(Object) |
Détermine si un SortedList objet contient une valeur spécifique. |
| CopyTo(Array, Int32) |
Copie des SortedList éléments dans un objet unidimensionnel Array , en commençant à l’index spécifié dans le tableau. |
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetByIndex(Int32) |
Obtient la valeur à l’index spécifié d’un SortedList objet. |
| GetEnumerator() |
Retourne un IDictionaryEnumerator objet qui itère dans un SortedList objet. |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetKey(Int32) |
Obtient la clé à l’index spécifié d’un SortedList objet. |
| GetKeyList() |
Obtient les clés d’un SortedList objet. |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| GetValueList() |
Obtient les valeurs d’un SortedList objet. |
| IndexOfKey(Object) |
Retourne l’index de base zéro de la clé spécifiée dans un SortedList objet. |
| IndexOfValue(Object) |
Retourne l’index de base zéro de la première occurrence de la valeur spécifiée dans un SortedList objet. |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| Remove(Object) |
Supprime l’élément avec la clé spécifiée d’un SortedList objet. |
| RemoveAt(Int32) |
Supprime l’élément à l’index spécifié d’un SortedList objet. |
| SetByIndex(Int32, Object) |
Remplace la valeur à un index spécifique dans un SortedList objet. |
| Synchronized(SortedList) |
Retourne un wrapper synchronisé (thread-safe) pour un SortedList objet. |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
| TrimToSize() |
Définit la capacité sur le nombre réel d’éléments d’un SortedList objet. |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| IEnumerable.GetEnumerator() |
Retourne un itération qui effectue une IEnumerator itération dans le SortedList. |
Méthodes d’extension
| Nom | Description |
|---|---|
| AsParallel(IEnumerable) |
Active la parallélisation d’une requête. |
| AsQueryable(IEnumerable) |
Convertit un IEnumerable en IQueryable. |
| Cast<TResult>(IEnumerable) |
Convertit les éléments d’un IEnumerable en type spécifié. |
| OfType<TResult>(IEnumerable) |
Filtre les éléments d’une IEnumerable en fonction d’un type spécifié. |
S’applique à
Cohérence de thread
Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'y a aucune garantie que les membres d’instance soient thread-safe.
Un SortedList objet peut prendre en charge plusieurs lecteurs simultanément, tant que la collection n’est pas modifiée. Pour garantir la sécurité du thread, SortedListtoutes les opérations doivent être effectuées via le wrapper retourné par la Synchronized(SortedList) méthode.
L’énumération par le biais d’une collection n’est intrinsèquement pas une procédure thread-safe. Même lorsqu’une collection est synchronisée, d’autres threads peuvent toujours modifier la collection, ce qui provoque la levée d’une exception par l’énumérateur. Pour garantir la sécurité des threads pendant l’énumération, vous pouvez verrouiller la collection pendant toute l’énumération ou intercepter les exceptions résultant des modifications apportées par d’autres threads.