एक का उपयोग Lookup
उल्टा हो सकता है Dictionary
।
मान लीजिए कि आपके पास Dictionary
कुंजी के रूप में (अद्वितीय) नामों के एक समूह के रूप में कार्यान्वित एक फोनबुक है , प्रत्येक नाम एक फोन नंबर के साथ जुड़ा हुआ है। लेकिन अलग-अलग नामों वाले दो लोग एक ही फोन नंबर साझा कर सकते हैं। यह एक के लिए एक समस्या नहीं है Dictionary
, जो परवाह नहीं करता है कि दो कुंजी एक ही मूल्य के अनुरूप हैं।
अब आप यह देखना चाहते हैं कि किसी दिए गए फोन नंबर का कौन है। आप अपने से Lookup
सभी को जोड़ते हुए एक का निर्माण KeyValuePairs
करते हैं Dictionary
, लेकिन पीछे की ओर, मूल्य के रूप में कुंजी और कुंजी के रूप में मूल्य के साथ। अब आप एक फ़ोन नंबर को क्वेरी कर सकते हैं, और उन सभी लोगों के नामों की सूची प्राप्त कर सकते हैं, जिनका फ़ोन नंबर है। एक Dictionary
ही डेटा के साथ निर्माण डेटा (या कैसे आप यह किया था पर निर्भर करता है,) को छोड़ देगा
dictionary["555-6593"] = "Dr. Emmett Brown";
dictionary["555-6593"] = "Marty McFly";
इसका मतलब है कि दूसरी प्रविष्टि पहले ओवरराइट करती है - डॉक्टर अब सूचीबद्ध नहीं है।
उसी डेटा को थोड़े अलग तरीके से लिखने की कोशिश की जा रही है:
dictionary.Add("555-6593", "Dr. Emmett Brown");
dictionary.Add("555-6593", "Marty McFly");
दूसरी पंक्ति पर एक अपवाद फेंक देंगे क्योंकि आप Add
एक कुंजी नहीं रख सकते हैं जो पहले से ही है Dictionary
।
[बेशक, आप कुछ अन्य एकल डेटा संरचना का उपयोग दोनों दिशाओं में लुकअप करने के लिए कर सकते हैं, आदि। इस उदाहरण का अर्थ है कि आपको प्रत्येक बार बाद के परिवर्तनों Lookup
से पुन: उत्पन्न करना होगा Dictionary
। लेकिन कुछ आंकड़ों के लिए यह सही समाधान हो सकता है।]