2011-01-07 19 views
8

बस पूछना चाहता था कि तीन अलग-अलग शब्दकोशों की आवश्यकता क्या है- ऑर्डर्ड डिक्शनरी, लिस्ट डिक्शनरी और हाइब्रिड डिक्शनरी जब वे सभी समान कार्य करते हैं। उनमें से कोई भी क्रमबद्ध नहीं है, संग्रह के तत्वों को उन सभी में कुंजी द्वारा पुनर्प्राप्त किया जा सकता है। तो, तीन अलग-अलग वर्गों का उद्देश्य क्या है ??ऑर्डर्ड डिक्शनरी, लिस्ट डिक्शनरी और हाइब्रिड डिक्शनरी

आप

उत्तर

11

धन्यवाद संक्षेप में:

  • Dictionary - ठीक है, एक शब्दकोश।

  • ListDictionary - छोटे संग्रह, आम तौर पर

  • HybridDictionary कम से कम 10 मदों के लिए प्रयोग किया जाता है - प्रयुक्त जब संग्रह आकार अज्ञात है

  • OrderedDictionary (संग्रह के आकार के आधार कार्यान्वयन स्विच) - ऑर्डर्ड डिक्शनरी के तत्वों को SortedDictionary<TKey, TValue> कक्षा के तत्वों के विपरीत, कुंजी द्वारा क्रमबद्ध नहीं किया जाता है। आप या तो कुंजी या इंडेक्स द्वारा तत्वों तक पहुंच सकते हैं।

+2

यह एक अच्छा लेख है ... लेकिन फिर भी OrderedDictionary की आवश्यकता क्या है मुझे चिंतित है ?? – Batrickparry

+1

@ नोविस - क्षमा करें, याद किया - अब और जानकारी जोड़ना। –

+0

मेरा अनुमान है कि चाबियाँ ऑर्डर की जाती हैं। –

6

केली का जवाब पूरक करने के लिए:

OrderedDictionary कुंजी और सूचकांक (यह एक hashtable और और आंतरिक रूप से सरणी का उपयोग करता है) से पुनः प्राप्ति के लिए अनुमति देता है, लेकिन प्रति आइटम एक बड़ा भूमि के ऊपर है

ListDictionary के रूप में किसी लिंक किए गए सूची है इसकी आंतरिक संरचना, यह कुंजी द्वारा सम्मिलन और पुनर्प्राप्ति के लिए अच्छा प्रदर्शन नहीं करती है लेकिन मूल सम्मिलन आदेश

हाइब्रिड डिक्शनरी एक सूची डिक्शनरी है यदि शब्दकोश में कई आइटम नहीं हैं और एक हशता में परिवर्तित हो जाता है अगर आइटम की संख्या एक सापेक्ष सीमा तक पहुंच जाती है (मुझे व्यक्तिगत रूप से लगता है कि आपको < का उपयोग करना चाहिए, इसके बजाय सी # 2)

+0

'ListDictionary' और' OrderedDictionary' के बीच मुख्य अंतर को न भूलें, पूर्व आदेश को संरक्षित नहीं करता है, जबकि बाद में करता है। 'ListDictionary' नामकरण थोड़ा उलझन में है (और जब आपके पास हाइब्रिड संस्करण है तो मेरी राय में आवश्यकता नहीं है)। – nawfal

संबंधित मुद्दे