Bagikan melalui


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)

Lihat juga