Udostępnij za pośrednictwem


Kolekcje ogólne na platformie .NET

Biblioteka klas platformy .NET udostępnia wiele ogólnych klas kolekcji w przestrzeniach nazw System.Collections.Generic i System.Collections.ObjectModel. Aby uzyskać bardziej szczegółowe informacje o tych klasach, zobacz Często używane typy kolekcji.

System.Collections.Generic

Wiele typów kolekcji ogólnych jest bezpośrednimi analogiami typów niegenerycznych. Dictionary<TKey,TValue> jest wersją ogólną Hashtable; używa ogólnej struktury KeyValuePair<TKey,TValue> do wyliczenia zamiast DictionaryEntry.

List<T> jest ogólną wersją programu ArrayList. Istnieją klasy ogólne Queue<T> i Stack<T> , które odpowiadają niegenerycznych wersji.

Istnieją ogólne i niegeneryczne wersje programu SortedList<TKey,TValue>. Obie wersje są hybrydami słownika i listy. Klasa SortedDictionary<TKey,TValue> ogólna jest czystym słownikiem i nie ma niegenericznego odpowiednika.

Klasa LinkedList<T> ogólna jest prawdziwą połączoną listą. Nie ma on niegenericznego odpowiednika.

System.Collections.ObjectModel

Klasa Collection<T> ogólna udostępnia klasę bazową do wyprowadzania własnych typów kolekcji ogólnych. Klasa ReadOnlyCollection<T> zapewnia łatwy sposób tworzenia kolekcji w trybie tylko do odczytu z dowolnego typu, który implementuje generyczny interfejs IList<T>. Klasa KeyedCollection<TKey,TItem> ogólna umożliwia przechowywanie obiektów zawierających własne klucze.

Inne typy ogólne

Struktura Nullable<T> ogólna umożliwia używanie typów wartości tak, jakby mogły być przypisane null. Może to być przydatne podczas pracy z zapytaniami bazy danych, gdzie brakuje pól zawierających typy wartości. Parametr typu ogólnego może być dowolnym typem wartości.

Uwaga / Notatka

W językach C# i Visual Basic nie jest konieczne jawne użycie Nullable<T> , ponieważ język ma składnię dla typów dopuszczanych do wartości null. Zobacz Typy wartości dopuszczanych do wartości null (referencja C#) i Typy wartości dopuszczanych do wartości null (referencja Visual Basic).

Struktura ArraySegment<T> ogólna umożliwia rozdzielenie zakresu elementów w jednowymiarowej, zerowej tablicy dowolnego typu. Parametr typu ogólnego jest typem elementów tablicy.

Delegat EventHandler<TEventArgs> ogólny eliminuje konieczność deklarowania typu delegata do obsługi zdarzeń, jeśli zdarzenie jest zgodne ze wzorcem obsługi zdarzeń używanym przez platformę .NET. Załóżmy na przykład, że utworzyłeś klasę MyEventArgs, pochodzącą z klasy EventArgs, aby przechowywać dane dla Twojego wydarzenia. Następnie można zadeklarować zdarzenie w następujący sposób:

public event EventHandler<MyEventArgs> MyEvent;
Public Event MyEvent As EventHandler(Of MyEventArgs)

Zobacz także