Secara semantik, a Dictionary<int, T>
dan List<T>
sangat mirip, keduanya adalah wadah akses acak dari kerangka NET. Untuk menggunakan daftar sebagai pengganti kamus, Anda memerlukan nilai khusus dalam jenis Anda T
(seperti null
) untuk mewakili slot kosong dalam daftar Anda. Jika T
bukan tipe nullable int
, Anda bisa menggunakan int?
saja, atau jika Anda hanya berharap untuk menyimpan nilai positif, Anda juga bisa menggunakan nilai khusus seperti -1 untuk mewakili slot kosong.
Yang mana yang akan Anda pilih harus bergantung pada kisaran nilai kunci. Jika kunci Anda dalam Dictionary<int, T>
berada dalam interval integer, tanpa banyak celah di antara mereka (misalnya, 80 nilai dari [0, ... 100]), maka a List<T>
akan lebih sesuai, karena pengaksesan oleh indeks lebih cepat, dan ada lebih sedikit memori dan waktu overhead dibandingkan dengan kamus dalam kasus ini.
Jika nilai kunci Anda adalah 100 int
nilai dari rentang seperti [0, ..., 1000000], maka List<T>
memori yang diperlukan untuk menyimpan nilai 1000000 T, di mana kamus Anda hanya akan membutuhkan memori dalam urutan besarnya sekitar 100 nilai T, 100 nilai int (ditambah beberapa overhead, dalam kenyataannya mengharapkan sekitar 2 kali memori untuk menyimpan 100 kunci dan nilai-nilai). Jadi dalam kasus terakhir kamus akan lebih sesuai.