SortedList Klas

Definitie

Vertegenwoordigt een verzameling sleutel-/waardeparen die zijn gesorteerd op de sleutels en die toegankelijk zijn op sleutel en index.

public ref class SortedList : System::Collections::IDictionary
public ref class SortedList : ICloneable, System::Collections::IDictionary
public class SortedList : 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
public class SortedList : ICloneable, System.Collections.IDictionary
type SortedList = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
[<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
type SortedList = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
    interface ICloneable
Public Class SortedList
Implements IDictionary
Public Class SortedList
Implements ICloneable, IDictionary
Overname
SortedList
Kenmerken
Implementeringen

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u een SortedList object maakt en initialiseert en hoe u de sleutels en waarden ervan kunt afdrukken.

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:    !

Opmerkingen

Een SortedList element kan worden geopend door de sleutel, zoals een element in elke IDictionary implementatie of door de index, zoals een element in elke IList implementatie.

Important

We raden u niet aan om de SortedList klasse te gebruiken voor nieuwe ontwikkeling. In plaats daarvan raden we u aan de algemene System.Collections.Generic.SortedList<TKey,TValue> klasse te gebruiken. Zie Aangenaamde verzamelingen niet worden gebruikt op GitHub voor meer informatie.

Een SortedList object onderhoudt intern twee matrices om de elementen van de lijst op te slaan. Dat wil gezegd: één matrix voor de sleutels en een andere matrix voor de bijbehorende waarden. Elk element is een sleutel-waardepaar dat kan worden geopend als een DictionaryEntry object. Een sleutel kan niet zijn null, maar een waarde kan zijn.

De capaciteit van een SortedList object is het aantal elementen dat de SortedList kan bevatten. Als er elementen aan een SortedListworden toegevoegd, wordt de capaciteit automatisch verhoogd als vereist via herlocatie. De capaciteit kan worden verlaagd door aan te roepen TrimToSize of door de Capacity eigenschap expliciet in te stellen.

.NET Framework alleen: Voor zeer grote SortedList-objecten kunt u de maximale capaciteit verhogen tot 2 miljard elementen op een 64-bits systeem door het kenmerk enabled van het <gcAllowVeryLargeObjects>-configuratie-element in te stellen op true in de runtimeomgeving.

De elementen van een SortedList object worden gesorteerd op de sleutels volgens een specifieke IComparer implementatie die is opgegeven bij het SortedList maken of volgens de IComparable implementatie die door de sleutels zelf wordt verstrekt. In beide gevallen staat a SortedList geen dubbele sleutels toe.

De indexvolgorde is gebaseerd op de sorteervolgorde. Wanneer een element wordt toegevoegd, wordt het ingevoegd SortedList in de juiste sorteervolgorde en wordt de indexering dienovereenkomstig aangepast. Wanneer een element wordt verwijderd, wordt de indexering ook dienovereenkomstig aangepast. Daarom kan de index van een specifiek sleutel-waardepaar veranderen wanneer elementen worden toegevoegd aan of verwijderd uit het SortedList object.

Bewerkingen op een SortedList object zijn meestal langzamer dan bewerkingen op een Hashtable object vanwege de sortering. Het SortedList biedt echter meer flexibiliteit door toegang tot de waarden toe te staan via de bijbehorende sleutels of via de indexen.

Elementen in deze verzameling kunnen worden benaderd met behulp van een integer-index. Indexen in deze verzameling zijn gebaseerd op nul.

De instructie foreach van de C#-taal (for each in Visual Basic) retourneert een object van het type elementen in de verzameling. Omdat elk element van het SortedList object een sleutel-waardepaar is, is het elementtype niet het type van de sleutel of het type van de waarde. In plaats daarvan is DictionaryEntryhet elementtype . Voorbeeld:

foreach (DictionaryEntry de in mySortedList)
{
    //...
}
For Each de As DictionaryEntry In mySortedList
    '...
Next de

De foreach instructie is een wrapper rond de enumerator, waarmee alleen kan worden gelezen van, niet naar, de verzameling.

Constructors

Name Description
SortedList()

Initialiseert een nieuw exemplaar van de SortedList klasse die leeg is, heeft de standaardinitiële capaciteit en wordt gesorteerd op basis van de IComparable interface die wordt geïmplementeerd door elke sleutel die aan het SortedList object is toegevoegd.

SortedList(IComparer, Int32)

Initialiseert een nieuw exemplaar van de SortedList klasse die leeg is, heeft de opgegeven initiële capaciteit en wordt gesorteerd op basis van de opgegeven IComparer interface.

SortedList(IComparer)

Initialiseert een nieuw exemplaar van de SortedList klasse die leeg is, heeft de standaardinitiële capaciteit en wordt gesorteerd op basis van de opgegeven IComparer interface.

SortedList(IDictionary, IComparer)

Initialiseert een nieuw exemplaar van de SortedList klasse die elementen bevat die zijn gekopieerd uit de opgegeven woordenlijst, heeft dezelfde initiële capaciteit als het aantal gekopieerde elementen en wordt gesorteerd op basis van de opgegeven IComparer interface.

SortedList(IDictionary)

Initialiseert een nieuw exemplaar van de SortedList klasse die elementen bevat die zijn gekopieerd uit de opgegeven woordenlijst, heeft dezelfde initiële capaciteit als het aantal gekopieerde elementen en wordt gesorteerd op basis van de IComparable interface die door elke sleutel wordt geïmplementeerd.

SortedList(Int32)

Initialiseert een nieuw exemplaar van de SortedList klasse die leeg is, heeft de opgegeven initiële capaciteit en wordt gesorteerd op basis van de IComparable interface die wordt geïmplementeerd door elke sleutel die aan het SortedList object is toegevoegd.

Eigenschappen

Name Description
Capacity

Hiermee haalt u de capaciteit van een SortedList object op of stelt u deze in.

Count

Hiermee haalt u het aantal elementen in een SortedList object op.

IsFixedSize

Hiermee wordt een waarde opgehaald die aangeeft of een SortedList object een vaste grootte heeft.

IsReadOnly

Hiermee wordt een waarde opgehaald die aangeeft of een SortedList object alleen-lezen is.

IsSynchronized

Hiermee wordt een waarde opgehaald die aangeeft of de toegang tot een SortedList object wordt gesynchroniseerd (thread safe).

Item[Object]

Hiermee haalt u de waarde op die is gekoppeld aan een specifieke sleutel in een SortedList object of stelt u deze in.

Keys

Hiermee haalt u de sleutels in een SortedList object op.

SyncRoot

Hiermee haalt u een object op dat kan worden gebruikt om de toegang tot een SortedList object te synchroniseren.

Values

Hiermee haalt u de waarden in een SortedList object op.

Methoden

Name Description
Add(Object, Object)

Voegt een element met de opgegeven sleutel en waarde toe aan een SortedList object.

Clear()

Hiermee verwijdert u alle elementen uit een SortedList object.

Clone()

Hiermee maakt u een ondiepe kopie van een SortedList object.

Contains(Object)

Bepaalt of een SortedList object een specifieke sleutel bevat.

ContainsKey(Object)

Bepaalt of een SortedList object een specifieke sleutel bevat.

ContainsValue(Object)

Bepaalt of een SortedList object een specifieke waarde bevat.

CopyTo(Array, Int32)

Hiermee kopieert u SortedList elementen naar een eendimensionaal Array object, te beginnen bij de opgegeven index in de matrix.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetByIndex(Int32)

Haalt de waarde op bij de opgegeven index van een SortedList object.

GetEnumerator()

Retourneert een IDictionaryEnumerator object dat door een SortedList object wordt herhaald.

GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetKey(Int32)

Hiermee haalt u de sleutel op de opgegeven index van een SortedList object op.

GetKeyList()

Hiermee haalt u de sleutels in een SortedList object op.

GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
GetValueList()

Hiermee haalt u de waarden in een SortedList object op.

IndexOfKey(Object)

Retourneert de op nul gebaseerde index van de opgegeven sleutel in een SortedList object.

IndexOfValue(Object)

Retourneert de op nul gebaseerde index van het eerste exemplaar van de opgegeven waarde in een SortedList object.

MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
Remove(Object)

Hiermee verwijdert u het element met de opgegeven sleutel uit een SortedList object.

RemoveAt(Int32)

Hiermee verwijdert u het element in de opgegeven index van een SortedList object.

SetByIndex(Int32, Object)

Vervangt de waarde bij een specifieke index in een SortedList object.

Synchronized(SortedList)

Retourneert een gesynchroniseerde (thread-safe) wrapper voor een SortedList object.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)
TrimToSize()

Hiermee stelt u de capaciteit in op het werkelijke aantal elementen in een SortedList object.

Expliciete interface-implementaties

Name Description
IEnumerable.GetEnumerator()

Retourneert een IEnumerator die door de SortedList.

Extensiemethoden

Name Description
AsParallel(IEnumerable)

Hiermee schakelt u parallelle uitvoering van een query in.

AsQueryable(IEnumerable)

Converteert een IEnumerable naar een IQueryable.

Cast<TResult>(IEnumerable)

Cast de elementen van een IEnumerable naar het opgegeven type.

OfType<TResult>(IEnumerable)

Hiermee filtert u de elementen van een IEnumerable op basis van een opgegeven type.

Van toepassing op

Veiligheid thread

Openbare statische (Shared in Visual Basic) leden van dit type zijn thread-veilig. Exemplaarleden zijn niet gegarandeerd thread-safe.

Een SortedList object kan meerdere lezers tegelijk ondersteunen, zolang de verzameling niet wordt gewijzigd. Om de veiligheid van de SortedListdraad te garanderen, moeten alle bewerkingen worden uitgevoerd via de wrapper die door de Synchronized(SortedList) methode wordt geretourneerd.

Het inventariseren via een verzameling is intrinsiek geen thread-veilige procedure. Zelfs wanneer een verzameling wordt gesynchroniseerd, kunnen andere threads de verzameling nog steeds wijzigen, waardoor de enumerator een uitzondering genereert. Om de veiligheid van threads tijdens de inventarisatie te garanderen, kunt u de verzameling vergrendelen tijdens de volledige inventarisatie of de uitzonderingen ondervangen die het gevolg zijn van wijzigingen die door andere threads zijn aangebracht.

Zie ook