Delen via


Veelgebruikte verzamelingstypen

Verzamelingstypen vertegenwoordigen verschillende manieren om gegevens te verzamelen, zoals hash-tabellen, wachtrijen, stapels, tassen, woordenlijsten en lijsten.

Alle verzamelingen zijn gebaseerd op de ICollection of ICollection<T> interfaces, hetzij direct of indirect. IList en IDictionary hun generieke tegenhangers zijn allemaal afgeleid van deze twee interfaces.

In verzamelingen op IList basis van of rechtstreeks op ICollection, bevat elk element slechts een waarde. Deze typen omvatten:

In verzamelingen op basis van de IDictionary interface bevat elk element zowel een sleutel als een waarde. Deze typen omvatten:

De KeyedCollection<TKey,TItem> klasse is uniek omdat het een lijst met waarden is met sleutels die zijn ingesloten in de waarden. Als gevolg hiervan gedraagt het zich zowel als een lijst als als een woordenlijst.

Wanneer u efficiënte toegang tot verzamelingen met meerdere threads nodig hebt, gebruikt u de algemene verzamelingen in de System.Collections.Concurrent naamruimte.

De Queue en Queue<T> klassen bieden first-in-first-out-lijsten. De Stack en Stack<T> klassen bieden lijsten met laatste in eerste instantie.

Sterk typen

Algemene verzamelingen zijn de beste oplossing voor sterk typen. Als u bijvoorbeeld een element van een ander type dan een Int32 aan een List<Int32> verzameling toevoegt, wordt een compilatiefout veroorzaakt. Als uw taal echter geen generieken ondersteunt, bevat de System.Collections naamruimte abstracte basisklassen die u kunt uitbreiden om verzamelingsklassen te maken die sterk zijn getypt. Deze basisklassen zijn onder andere:

Hoe verzamelingen variëren

Verzamelingen variëren in hoe ze elementen opslaan, sorteren en vergelijken en hoe ze zoekopdrachten uitvoeren.

De SortedList klasse en de SortedList<TKey,TValue> algemene klasse bieden gesorteerde versies van de Hashtable klasse en de Dictionary<TKey,TValue> algemene klasse.

Alle verzamelingen gebruiken op nul gebaseerde indexen, behalve Array, waardoor matrices die niet op nul zijn gebaseerd, zijn toegestaan.

U kunt toegang krijgen tot de elementen van een SortedList of een KeyedCollection<TKey,TItem> door de sleutel of de index van het element. U hebt alleen toegang tot de elementen van een Hashtable of een Dictionary<TKey,TValue> element met de sleutel van het element.

LINQ gebruiken met verzamelingstypen

De functie LINQ naar objecten biedt een gemeenschappelijk patroon voor toegang tot in-memory objecten van elk type dat wordt geïmplementeerd IEnumerable of IEnumerable<T>. LINQ-query's hebben verschillende voordelen ten opzichte van standaardconstructies zoals foreach lussen:

  • Ze zijn beknopt en gemakkelijker te begrijpen.
  • Ze kunnen gegevens filteren, orden en groeperen.
  • Ze kunnen de prestaties verbeteren.

Zie LINQ naar objecten (C#) en LINQ naar objecten (Visual Basic) en Parallel LINQ (PLINQ) voor meer informatie.

Title Beschrijving
Verzamelingen en gegevensstructuren Hierin worden de verschillende verzamelingstypen besproken die beschikbaar zijn in .NET, waaronder stacks, wachtrijen, lijsten, matrices en woordenlijsten.
Typen hashtabel- en woordenlijstverzameling Hierin worden de functies van algemene en niet-generische hash-woordenlijsttypen beschreven.
Gesorteerde verzamelingstypen Beschrijft klassen die sorteerfunctionaliteit bieden voor lijsten en sets.
Generics Hierin worden de algemene functies beschreven, waaronder de algemene verzamelingen, gemachtigden en interfaces van .NET. Bevat koppelingen naar functiedocumentatie voor C#, Visual Basic en Visual C++, en naar ondersteunende technologieën zoals reflectie.

Verwijzing

System.Collections

System.Collections.Generic

System.Collections.ICollection

System.Collections.Generic.ICollection<T>

System.Collections.IList

System.Collections.Generic.IList<T>

System.Collections.IDictionary

System.Collections.Generic.IDictionary<TKey,TValue>