Kolekcje ogólne na platformie .NET

Biblioteka klas platformy .NET udostępnia wiele ogólnych klas kolekcji w System.Collections.Generic przestrzeniach nazw 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 ogólną wersją programu Hashtable; używa struktury KeyValuePair<TKey,TValue> ogólnej dla 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 tylko do odczytu z dowolnego typu, który implementuje IList<T> interfejs ogólny. 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

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 (odwołanie w C#) i Typy wartości dopuszczalnych wartości null (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 utworzono klasę pochodzącą MyEventArgs z EventArgsklasy , aby przechowywać dane dla zdarzenia. Następnie można zadeklarować zdarzenie w następujący sposób:

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

Zobacz też