Bir kullanımı Lookup
a'yı tersine çevirmek olabilir Dictionary
.
Dictionary
Her biri bir telefon numarasıyla ilişkilendirilmiş bir grup (benzersiz) ad olarak anahtar olarak uygulanmış bir telefon defteriniz olduğunu varsayalım . Ancak farklı adlara sahip iki kişi aynı telefon numarasını paylaşabilir. Bu, Dictionary
iki anahtarın aynı değere karşılık gelmesini umursamayan bir a için sorun değildir.
Şimdi belirli bir telefon numarasının kime ait olduğunu aramanın bir yolunu istiyorsunuz. Bir inşa Lookup
tüm ekleyerek, KeyValuePairs
sizin gelen Dictionary
anahtar ve değer olarak anahtar olarak değerle, ama ters takmış. Artık bir telefon numarasını sorgulayabilir ve telefon numarası olan tüm kişilerin adlarının bir listesini alabilirsiniz. Dictionary
Aynı verilere sahip bir a oluşturmak veriyi düşürür (veya nasıl yaptığınıza bağlı olarak başarısız olur), çünkü
dictionary["555-6593"] = "Dr. Emmett Brown";
dictionary["555-6593"] = "Marty McFly";
ikinci girişin birincinin üzerine yazdığı anlamına gelir - Doküman artık listelenmiyor.
Aynı verileri biraz farklı bir şekilde yazmaya çalışın:
dictionary.Add("555-6593", "Dr. Emmett Brown");
dictionary.Add("555-6593", "Marty McFly");
Add
zaten içinde bulunan bir anahtarı kullanamayacağınız için ikinci satıra bir istisna atarsınız Dictionary
.
[Elbette, her iki yönde arama yapmak için başka bir tek veri yapısı kullanmak isteyebilirsiniz. Bu örnek Lookup
, Dictionary
her değiştiğinde yeniden oluşturmanız gerektiği anlamına gelir . Ancak bazı veriler için doğru çözüm olabilir.]