Salah satu penggunaan Lookup
bisa untuk membalikkan a Dictionary
.
Misalkan Anda memiliki buku telepon yang diimplementasikan sebagai Dictionary
dengan sekelompok (unik) nama sebagai kunci, masing-masing nama yang terkait dengan nomor telepon. Tetapi dua orang dengan nama berbeda mungkin berbagi nomor telepon yang sama. Ini bukan masalah untuk a Dictionary
, yang tidak peduli bahwa dua kunci sesuai dengan nilai yang sama.
Sekarang Anda ingin cara mencari tahu milik siapa nomor telepon tertentu. Anda membangun Lookup
, menambahkan semua KeyValuePairs
dari Anda Dictionary
, tetapi mundur, dengan nilai sebagai kunci dan kunci sebagai nilai. Anda sekarang dapat meminta nomor telepon, dan mendapatkan daftar nama semua orang yang memiliki nomor telepon itu. Membangun Dictionary
dengan data yang sama akan menghapus data (atau gagal, tergantung bagaimana Anda melakukannya), sejak melakukannya
dictionary["555-6593"] = "Dr. Emmett Brown";
dictionary["555-6593"] = "Marty McFly";
berarti bahwa entri kedua menimpa yang pertama - Doc tidak lagi terdaftar.
Mencoba menulis data yang sama dengan cara yang sedikit berbeda:
dictionary.Add("555-6593", "Dr. Emmett Brown");
dictionary.Add("555-6593", "Marty McFly");
akan melemparkan pengecualian pada baris kedua karena Anda tidak dapat Add
kunci yang sudah ada di Dictionary
.
[Tentu saja, Anda mungkin ingin menggunakan beberapa struktur data tunggal untuk melakukan pencarian di kedua arah, dll. Contoh ini berarti bahwa Anda harus membuat ulang Lookup
dari Dictionary
setiap kali perubahan terakhir. Tetapi untuk beberapa data itu bisa menjadi solusi yang tepat.]