Jednym z zastosowań Lookupmoże być odwrócenie pliku Dictionary.
Załóżmy, że masz książkę telefoniczną zaimplementowaną jako zestaw Dictionary(unikalnych) nazw jako kluczy, z których każda jest powiązana z numerem telefonu. Ale dwie osoby o różnych nazwach mogą mieć ten sam numer telefonu. Nie stanowi to problemu dla a Dictionary, który nie przejmuje się tym, że dwa klucze odpowiadają tej samej wartości.
Teraz potrzebujesz sposobu na sprawdzenie, do kogo należy dany numer telefonu. Budujesz Lookup, dodając wszystkie KeyValuePairsz twojego Dictionary, ale wstecz, z wartością jako kluczem i kluczem jako wartością. Możesz teraz zapytać o numer telefonu i uzyskać listę nazwisk wszystkich osób, których to numer telefonu. Budowanie Dictionaryz tymi samymi danymi spadnie dane (lub nie, w zależności od tego, jak to zrobił), ponieważ robi
dictionary["555-6593"] = "Dr. Emmett Brown";
dictionary["555-6593"] = "Marty McFly";
oznacza, że drugi wpis zastępuje pierwszy - dokumentu nie ma już na liście.
Próbuję zapisać te same dane w nieco inny sposób:
dictionary.Add("555-6593", "Dr. Emmett Brown");
dictionary.Add("555-6593", "Marty McFly");
zgłosiłby wyjątek w drugiej linii, ponieważ nie można Addużyć klucza, który jest już w Dictionary.
[Oczywiście, możesz chcieć użyć jakiejś innej pojedynczej struktury danych do wyszukiwania w obu kierunkach, itd. Ten przykład oznacza, że musisz ponownie wygenerować dane Lookupz Dictionarykażdej zmiany tej ostatniej. Ale w przypadku niektórych danych może to być właściwe rozwiązanie.]