Di balik List dan Dictionary yang sudah akrab, .NET memiliki arsitektur koleksi yang lebih luas: interface standar, iterator dengan yield return, hingga koleksi immutable dan thread-safe. Section ini membahas mekanisme di balik koleksi sehingga kita tidak hanya memakai, tetapi juga mampu merancang koleksi sendiri.

# Collection Interfaces

Kenali kontrak standar koleksi .NET: IEnumerable, ICollection, IList, dan IDictionary sebagai fondasi seluruh bab di section ini.

Buka →
# IEnumerable dan IEnumerator

Bongkar mekanisme foreach dengan mengenal pasangan interface IEnumerable dan IEnumerator yang mendasari semua iterasi di .NET.

Buka →
# Iterator Pattern

Pelajari pola desain yang menyembunyikan struktur internal koleksi di balik iterator: aggregate menyediakan, konsumen membaca.

Buka →
# Yield Return

Gunakan yield return untuk membuat iterator dengan singkat: compiler yang membangun state machine-nya.

Buka →
# Yield Break

Hentikan iterasi lebih awal dengan yield break ketika sisa item sudah tidak relevan untuk dikirim.

Buka →
# Lazy Iteration

Pahami sifat tunda eksekusi iterator method: badan baru berjalan saat enumerasi, dan berjalan ulang pada setiap enumerasi.

Buka →
# Custom Iterator

Bangun koleksi dengan enumerator buatan sendiri: implementasi penuh IEnumerable dan IEnumerator tanpa yield.

Buka →
# Collection Initialization

Ketahui mekanisme di balik collection initializer, cara membuat tipe kustom yang mendukungnya, dan collection expression dari C# 12.

Buka →
# Immutable Collections

Gunakan koleksi dari System.Collections.Immutable yang tidak bisa diubah, sehingga setiap modifikasi menghasilkan koleksi baru.

Buka →
# Frozen Collections

Manfaatkan FrozenDictionary dan FrozenSet dari .NET 8 untuk data yang dibangun sekali dan dibaca berkali-kali.

Buka →
# Concurrent Collections

Gambaran singkat System.Collections.Concurrent: ConcurrentDictionary dan ConcurrentQueue untuk data yang disentuh banyak thread.

Buka →
# Collection Performance

Bandingkan biaya operasi antar keluarga koleksi lewat tabel Big-O dan kuasai pralokasi capacity untuk menghemat penyalinan.

Buka →
# Collection Design

Rancang API yang menyimpan koleksi dengan aman: enkapsulasi internal, tampilan baca-saja, dan pemilihan tipe parameter yang tepat.

Buka →