.NET में, Dictionary<TKey, TValue>
के लिए एक कन्स्ट्रक्टर है जो एक पैरामीटर लेता है, int capacity
। यह List<T>
, Queue<T>
, और Stack<T>
जैसे कई अन्य संग्रहों के समान है; इसके अलावा, the MSDN documentation के अनुसार:कोई शब्दकोश क्यों नहीं है। TamExcess()?
शब्दकोश की क्षमता तत्वों की संख्या है जो आकार बदलने से पहले शब्दकोश में जोड़ा जा सकता है। जैसे-जैसे तत्वों को एक शब्दकोश में जोड़ा जाता है, आंतरिक सरणी को पुन: आवंटित करके क्षमता स्वचालित रूप से बढ़ जाती है।
यह मेरे लिए काफी List<T>
, आदि इन संग्रहों के बाद से जैसे अन्य संग्रह के साथ के रूप में ही लगता है की सुविधा स्वत: आकार व्यवहार जब आवश्यक है और इसलिए आवश्यक की तुलना में अधिक क्षमता होने की संभावना है, उनमें से ज्यादातर एक सुविधा TrimExcess
विधि। यह आसान है अगर कहें, आप एक समय में संग्रह में अज्ञात संख्या में आइटम जोड़ रहे हैं, और इसके बाद आप कोई अतिरिक्त आइटम नहीं जोड़ेंगे।
Dictionary<TKey, TValue>
क्यों TrimExcess
विधि नहीं है?
(अस्वीकरण: मैं के साथ काफी परिचित हूँ प्रतिक्रिया "सुविधाएं डिफ़ॉल्ट रूप से मौजूद नहीं है", मुझे लगता है कि मैं ज्यादातर कर रहा हूँ बस वहाँ एक विशेष कारण है कि एक Dictionary
के लिए TrimExcess
मतलब नहीं है, या कारण है कि यह है कि अगर सोच List
जैसे सरल संग्रहों के मुकाबले लागू करना काफी कठिन होगा।)
के बाद से ' हैशसेट की 'ट्रिमएक्सस' विधि है और आंतरिक रूप से हैशटेबल के साथ भी काम करती है, मुझे लगता है कि 'शब्दकोश 'के लिए' TrimExcess' को लागू नहीं करने के लिए कोई तकनीकी कारण नहीं है। वे प्रलेखन में भी कहते हैं कि 'हैशसेट' मूल्यों के बिना 'शब्दकोश' की तरह है। – Kjara