Bir kullanımı Lookupa'yı tersine çevirmek olabilir Dictionary.
DictionaryHer 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, Dictionaryiki 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 Lookuptüm ekleyerek, KeyValuePairssizin gelen Dictionaryanahtar 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. DictionaryAynı 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");
Addzaten 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, Dictionaryher değiştiğinde yeniden oluşturmanız gerektiği anlamına gelir . Ancak bazı veriler için doğru çözüm olabilir.]