Koleksi generik di .NET
Pustaka kelas .NET menyediakan sejumlah kelas koleksi generik di namespasce System.Collections.Generic dan System.Collections.ObjectModel. Untuk informasi lebih detail tentang kelas-kelas ini, lihat Jenis Koleksi yang Biasa Digunakan.
System.Collections.Generic
Banyak dari jenis koleksi generik adalah analog langsung dari jenis nongenerik. Dictionary<TKey,TValue> adalah versi umum dari Hashtable; menggunakan struktur generik KeyValuePair<TKey,TValue> untuk enumerasi, bukan 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 tersebut merupakan hibrida dari kamus dan daftar. Kelas generik SortedDictionary<TKey,TValue> adalah kamus murni dan tidak memiliki rekan nongenerik.
Kelas generik LinkedList<T> adalah daftar tertaut yang benar. Kelas tersebut tidak memiliki rekan nongenerik.
System.Collections.ObjectModel
Kelas generik Collection<T> menyediakan kelas dasar untuk mendapatkan jenis koleksi generik Anda sendiri. Kelas ReadOnlyCollection<T> menyediakan cara mudah untuk menghasilkan koleksi baca-saja dari jenis apa pun yang mengimplementasikan antarmuka generik IList<T>. Kelas generik KeyedCollection<TKey,TItem> menyediakan cara untuk menyimpan objek yang berisi kuncinya sendiri.
Jenis generik lainnya
Struktur generik Nullable<T> memungkinkan Anda untuk menggunakan jenis nilai seolah-olah mereka dapat ditetapkan null
. Hal ini dapat berguna saat bekerja dengan kueri database, di mana bidang yang berisi jenis nilai dapat hilang. Parameter jenis generik dapat menjadi jenis nilai apa pun.
Catatan
Dalam C# dan Visual Basic, tidak perlu menggunakan Nullable<T> secara eksplisit karena bahasa memiliki sintaks untuk jenis yang dapat diubah ke null. Lihat Jenis nilai yang dapat diubah ke null (referensi C#) dan Jenis nilai yang dapat diubah ke null (Visual Basic).
Struktur generik ArraySegment<T> menyediakan cara untuk memisahkan berbagai elemen dalam array berbasis satu dimensi dan nol dari jenis apa pun. Parameter jenis generik adalah jenis elemen array.
Delegasi generik EventHandler<TEventArgs> menghilangkan kebutuhan untuk mendeklarasikan jenis delegasi untuk menangani peristiwa, jika peristiwa Anda mengikuti pola penanganan peristiwa yang digunakan oleh .NET. Misalnya, Anda telah membuat kelas MyEventArgs
, yang berasal dari EventArgs, guna menyimpan data untuk peristiwa Anda. Anda kemudian dapat mendeklarasikan peristiwa sebagai berikut:
public:
event EventHandler<MyEventArgs^>^ MyEvent;
public event EventHandler<MyEventArgs> MyEvent;
Public Event MyEvent As EventHandler(Of MyEventArgs)