Apa perbedaan antara List of KeyValuePair dan Dictionary untuk tipe yang sama? Apakah ada waktu yang tepat untuk menggunakan salah satunya?
c#
dictionary
Korpsekicker
sumber
sumber
Singkatnya, daftar tidak memaksakan keunikan kunci, jadi jika Anda membutuhkan semantik itu maka itulah yang harus Anda gunakan.
sumber
Kamus adalah jenis umum yang berisi kumpulan pasangan nilai kunci. Kamus cepat untuk operasi pencarian, karena menggunakan fungsi hash secara internal . Artinya, semua kunci di kamus harus unik .
Pertimbangkan contoh ini:
List<KeyValuePair<int, string>> pairs = new List<KeyValuePair<int, string>>(); pairs.Add(new KeyValuePair<int, string>(1, "Miroslav")); pairs.Add(new KeyValuePair<int, string>(2, "Naomi")); pairs.Add(new KeyValuePair<int, string>(2, "Ingrid")); Dictionary<int, string> dict = new Dictionary<int, string>(); dict.Add(1, "Miroslav"); dict.Add(2, "Naomi"); dict.Add(2, "Ingrid"); // System.ArgumentException: An item with the same key has already been added.
Jadi, Anda harus selalu mempertimbangkan setidaknya dua hal:
sumber
Daftar ini juga akan berguna jika Anda peduli dengan urutan item.
sumber
Lebih jauh dari jawaban Phillip Ngan, SOAP atau lainnya, Anda tidak dapat membuat serialisasi XML objek yang mengimplementasikan IDictionary.
dari sini
sumber
Dalam layanan web SOAP untuk silverlight, kami telah menemukan bahwa Kamus tidak membuat serial. Ini akan menjadi situasi di mana Anda akan menggunakan List of KeyValuePair melalui Dictionary.
.
sumber
Dari http://blogs.msdn.com/bclteam/archive/2004/09/03/225473.aspx :
sumber