dictionary - .NET class for quickly find out Value based on Key and vice versa -


बहुत बार मैं डिक्शनरी & lt; TKey, TValue & gt; टाइप करने के लिए टाइप करें ehh ... शब्दकोश प्रकार मूल्यों की, उदा कुंजी = 1, मान = "कनाडा" । लेकिन कई मामलों में, शब्दकोशों में डेटा भी अद्वितीय है, जैसे कीज़। और मुझे लगता है कि शब्दकोश & lt; TKey, TValuue & gt; प्रकार के लिए, मूल्य के आधार पर मूल्य प्राप्त करने के लिए यह बहुत सुविधाजनक नहीं है

मेरा सवाल है, .NET में कौन सी कक्षा, इस परिदृश्य में उपयुक्त है? जल्दी कुंजी और इसके विपरीत मूल्य का पता लगाएं।

यह LINQ का उपयोग करके बहुत तुच्छ है:

और यदि आप कल्पना करते हैं:

  स्थिर वर्ग के शब्दकोशएक्सटेंशन {सार्वजनिक स्टेटिक बॉल्स ट्राईफिंडबिल्लेव्यू & lt; टीके, टीवील्यू & gt; (यह आईडीिकी & lt; टीके, टीवील्यू & gt; डिक्ट, टीवी मूल्य, टीकी कुंजी बाहर) {var keys = dict.Where ((केवी) = & gt; kv.Value.Equals (मान))। चुनें (kv = & gt; kv.Key); Bool retValue = keys.Any (); कुंजी = कुंजियाँ। फर्स्टऑर डीफॉल्ट (); रिटर्न रेट वेल्यू; }}  

आप IDictionary को कार्यान्वित कर सकते हैं, दो डिक्शनरी ऑब्जेक्ट्स को प्रतिनिधि (कुंजी-मान मैपिंग के लिए एक और एक स्टोर के समर्थन के लिए मूल्य-कुंजी मानचित्रण के लिए) और जोड़ें पर एक बाधा है कि मान अद्वितीय होना चाहिए। इस प्रकार आपको गारंटी दी जाती है कि एक विशेष मूल्य के साथ सबसे अधिक एक प्रविष्टि होगी। संपादित करें दो शब्दकोशों का उपयोग करने के समय में प्रवेश (सुधार @SamStephens) में सुधार के रूप में दोनों चाबियाँ और मानों को आदेश दिया हैशटेबल में संग्रहीत किया जाएगा।


Comments