Algemene verzamelingen in .NET
De .NET-klassebibliotheek biedt een aantal algemene verzamelingsklassen in de System.Collections.Generic en System.Collections.ObjectModel naamruimten. Zie Veelgebruikte verzamelingstypen voor meer gedetailleerde informatie over deze klassen.
System.Collections.Generic
Veel van de algemene verzamelingstypen zijn directe analogen van niet-genrische typen. Dictionary<TKey,TValue> is een algemene versie van ; het maakt gebruik van Hashtablede algemene structuur KeyValuePair<TKey,TValue> voor opsomming in plaats van DictionaryEntry.
List<T> is een algemene versie van ArrayList. Er zijn algemene Queue<T> en Stack<T> klassen die overeenkomen met de niet-genrische versies.
Er zijn algemene en niet-generische versies van SortedList<TKey,TValue>. Beide versies zijn hybride versies van een woordenlijst en een lijst. De SortedDictionary<TKey,TValue> algemene klasse is een pure woordenlijst en heeft geen niet-generische tegenhanger.
De LinkedList<T> algemene klasse is een echte gekoppelde lijst. Het heeft geen niet-generische tegenhanger.
System.Collections.ObjectModel
De Collection<T> algemene klasse biedt een basisklasse voor het afleiden van uw eigen algemene verzamelingstypen. De ReadOnlyCollection<T> klasse biedt een eenvoudige manier om een alleen-lezen verzameling te produceren van elk type dat de IList<T> algemene interface implementeert. De KeyedCollection<TKey,TItem> algemene klasse biedt een manier om objecten op te slaan die hun eigen sleutels bevatten.
Andere algemene typen
Met de Nullable<T> algemene structuur kunt u waardetypen gebruiken alsof ze kunnen worden toegewezen null
. Dit kan handig zijn bij het werken met databasequery's, waarbij velden met waardetypen ontbreken. De algemene typeparameter kan elk waardetype zijn.
Notitie
In C# en Visual Basic is het niet nodig om expliciet te gebruiken Nullable<T> omdat de taal syntaxis heeft voor null-typen. Zie Nullable value types (C#reference) en Nullable value types (Visual Basic).
De ArraySegment<T> algemene structuur biedt een manier om een bereik van elementen binnen een eendimensionale, op nul gebaseerde matrix van elk type te scheiden. De algemene typeparameter is het type elementen van de matrix.
De EventHandler<TEventArgs> algemene gemachtigde elimineert de noodzaak om een type gedelegeerde te declareren voor het afhandelen van gebeurtenissen, als uw gebeurtenis het patroon voor gebeurtenisafhandeling volgt dat wordt gebruikt door .NET. Stel dat u een MyEventArgs
klasse hebt gemaakt, afgeleid van EventArgs, om de gegevens voor uw gebeurtenis op te slaan. Vervolgens kunt u de gebeurtenis als volgt declareren:
public:
event EventHandler<MyEventArgs^>^ MyEvent;
public event EventHandler<MyEventArgs> MyEvent;
Public Event MyEvent As EventHandler(Of MyEventArgs)