Koleksi generik di .NET

Pustaka kelas .NET menyediakan sejumlah kelas koleksi generik di namespace System.Collections.Generic dan System.Collections.ObjectModel. Untuk informasi selengkapnya tentang kelas ini, lihat Jenis Koleksi yang Umum Digunakan.

System.Collections.Generic

Banyak dari jenis koleksi generik adalah analog langsung dari jenis nongenerik. Dictionary<TKey,TValue> adalah versi Hashtablegenerik ; menggunakan struktur KeyValuePair<TKey,TValue> generik untuk enumerasi alih-alih DictionaryEntry.

List<T> adalah versi generik dari ArrayList. Ada kelas generik Queue<T> dan Stack<T> yang sesuai dengan versi nongenerik.

Ada versi generik dan nongenerik dari SortedList<TKey,TValue>. Kedua versi adalah hibrida kamus dan daftar. Kelas SortedDictionary<TKey,TValue> generik adalah kamus murni dan tidak memiliki rekan nongenerik.

Kelas LinkedList<T> generik adalah daftar tertaut yang benar. Ini tidak memiliki padanan non-generik.

System.Collections.ObjectModel

Kelas Collection<T> generik menyediakan kelas dasar untuk mendapatkan jenis koleksi generik Anda sendiri. Kelas ReadOnlyCollection<T> menyediakan cara yang mudah untuk membuat koleksi hanya-baca dari jenis apa pun yang mengimplementasikan antarmuka generik IList<T>. Kelas KeyedCollection<TKey,TItem> generik menyediakan cara untuk menyimpan objek yang berisi kunci mereka sendiri.

Jenis generik lainnya

Struktur Nullable<T> generik memungkinkan Anda menggunakan jenis nilai seolah-olah dapat ditetapkan null. Ini bisa berguna saat bekerja dengan kueri database, di mana bidang yang berisi tipe nilai bisa hilang. Parameter jenis generik dapat berupa jenis nilai apa pun.

Nota

Dalam C# dan Visual Basic, tidak perlu menggunakan Nullable<T> secara eksplisit karena bahasa memiliki sintaks untuk jenis yang dapat diubah ke null. Lihat Tipe nilai nullable (referensi C#) dan Tipe nilai nullable (Visual Basic).

Struktur ArraySegment<T> generik menyediakan cara untuk memisahkan berbagai elemen dalam array berbasis satu dimensi dan nol dari jenis apa pun. Parameter tipe generik adalah tipe elemen-elemen dari array.

EventHandler<TEventArgs> Delegasi generik menghilangkan kebutuhan untuk mendeklarasikan jenis delegasi untuk menangani peristiwa, jika peristiwa Anda mengikuti pola penanganan peristiwa yang digunakan oleh .NET. Misalnya, Anda telah membuat MyEventArgs kelas, berasal dari EventArgs, untuk menyimpan data untuk peristiwa Anda. Anda kemudian dapat mendeklarasikan peristiwa sebagai berikut:

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

Lihat juga