यह PowerCollections में ऑर्डरर्ड डिक्शनरी है। यह एक प्रारंभ कुंजी/अंत कुंजी सेट करने की क्षमता के अतिरिक्त सॉर्टेड डिक्शनरी (जेनेरिक के साथ लाल काला पेड़) के समान है और उस सीमा में सभी मान स्कैन करें।
सॉर्टेड डिकोनरी केवल संग्रह की शुरुआत में शुरू होने वाले GetEnumerator() फ़ंक्शन को उजागर करने की अनुमति देता है और केवल MoveNext() कॉल की अनुमति देता है, इसलिए यदि आप LINQ का उपयोग करते हैं तो भी जादू कुछ भी नहीं हो रहा है: यह शुरुआत से शुरू होता है और आपके चलाता है क्रमशः प्रत्येक एकल नोड पर अभिव्यक्ति, जब तक कि यह आपके LINQ अभिव्यक्ति से मेल खाने वाले लोगों को न पाएं।
OrderedDictionary में एक ऐसा फ़ंक्शन है जो किसी विशेष कुंजी पर या उससे पहले एक गणक प्राप्त करता है और यह ओ (लॉग एन) में लुकअप करता है।
चेतावनी का एक शब्द हालांकि: पावरकोलेक्शन ऑर्डर्ड डिक्शनरी में गणक "उपज" का उपयोग करके लागू किया गया है और स्मृति उपयोग और गणना प्रदर्शन कम से कम ओ (एन^2) है ... आप इसे बनाने के लिए स्वयं को कार्यान्वित कर सकते हैं एक पारंपरिक गणक को लागू करें और इन दोनों समस्याओं को दूर कर दें। यदि मैं कभी भी समय पा सकता हूं तो मैं कोडप्लेक्स को उस पैच को सबमिट करूंगा।
"पुस्तक या शिक्षक" नामक आपके अन्य प्रश्न का उत्तर देने के लिए, * वास्तव में * प्रोग्रामिंग सीखने का सबसे अच्छा तरीका * लिखना प्रोग्राम * है। इसे अपने आप लिखें और फिर आप कुछ सीखेंगे। –
@ पावेल: मैं इसे लिख सकता हूं, लेकिन मैं कुछ तैयार करने की तलाश में हूं, इसलिए मैं अपने कार्यक्रम के मुख्य पक्षों को विकसित करना जारी रख सकता हूं, और विकास को तेज कर सकता हूं। –