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.
Kenali kontrak standar koleksi .NET: IEnumerable, ICollection, IList, dan IDictionary sebagai fondasi seluruh bab di section ini.
Buka → # IEnumerable dan IEnumeratorBongkar mekanisme foreach dengan mengenal pasangan interface IEnumerable dan IEnumerator yang mendasari semua iterasi di .NET.
Buka → # Iterator PatternPelajari pola desain yang menyembunyikan struktur internal koleksi di balik iterator: aggregate menyediakan, konsumen membaca.
Buka → # Yield ReturnGunakan yield return untuk membuat iterator dengan singkat: compiler yang membangun state machine-nya.
Buka → # Yield BreakHentikan iterasi lebih awal dengan yield break ketika sisa item sudah tidak relevan untuk dikirim.
Buka → # Lazy IterationPahami sifat tunda eksekusi iterator method: badan baru berjalan saat enumerasi, dan berjalan ulang pada setiap enumerasi.
Buka → # Custom IteratorBangun koleksi dengan enumerator buatan sendiri: implementasi penuh IEnumerable dan IEnumerator tanpa yield.
Buka → # Collection InitializationKetahui mekanisme di balik collection initializer, cara membuat tipe kustom yang mendukungnya, dan collection expression dari C# 12.
Buka → # Immutable CollectionsGunakan koleksi dari System.Collections.Immutable yang tidak bisa diubah, sehingga setiap modifikasi menghasilkan koleksi baru.
Buka → # Frozen CollectionsManfaatkan FrozenDictionary dan FrozenSet dari .NET 8 untuk data yang dibangun sekali dan dibaca berkali-kali.
Buka → # Concurrent CollectionsGambaran singkat System.Collections.Concurrent: ConcurrentDictionary dan ConcurrentQueue untuk data yang disentuh banyak thread.
Buka → # Collection PerformanceBandingkan biaya operasi antar keluarga koleksi lewat tabel Big-O dan kuasai pralokasi capacity untuk menghemat penyalinan.
Buka → # Collection DesignRancang API yang menyimpan koleksi dengan aman: enkapsulasi internal, tampilan baca-saja, dan pemilihan tipe parameter yang tepat.
Buka →