2010-06-29 13 views
5

मुझे शीर्षक के लिए एक पंक्ति में प्रश्न समझाते हुए कुछ परेशानी हो रही है, लेकिन उम्मीद है कि यह विवरण आपको मेरे प्रश्न को पूरी तरह से समझने के लिए पर्याप्त अंतर्दृष्टि प्रदान करेगा:सबसे आसान तरीका नंबरों की सूची में अंतराल को भरने क्या है?

मेरे पास Word दस्तावेज़ में कुछ चर हैं। हर चर एक Value जो कोई संख्या (0 से चर की संख्या पर निर्भर शुरू) है। एक SortedDictionary इन चर के साथ भरा जा रहा है, लेकिन यह संभव है कि एक चर से पहले हटा दिया गया है, इसलिए वहाँ एक 'खाई' इतना कहने के लिए है। उदाहरण:

5 चर SortedDictionary<int, string> में जोड़े जा रहे हैं जहां पहली संख्या int है और स्ट्रिंग सॉर्टेड डिक्शनरी के string भाग से मेल खाती है।

0 "name 1" 
1 "name 2" 
2 "name 3" 

अब चर में से एक तो शब्दकोश इस तरह नहीं भरा जाता, हटा दी जाती है:

0 "name 1" 
2 "name 3" 

अंततः SortedDictionary प्रविष्टियों के सभी सूची बॉक्स में जोड़ रहे हैं और मैं पहले नंबर का उपयोग कर रहा सम्मिलन के लिए सूचकांक के रूप में। आप कल्पना कर सकते हैं कि यह एक त्रुटि है, जब यह index 2 में एक आइटम जोड़ने के लिए जब index 1 मौजूद नहीं है की कोशिश करता है दे देंगे, लेकिन index 0 करता है।

जिस तरह से मैं इसे हल करना चाहता हूं वह यह है कि जब उपयोगकर्ता DeleteVariable() विधि को कॉल करता है और एक चर हटा दिया जाता है, तो सभी चर स्वचालित रूप से अपना मान (संख्या) अपडेट कर लेते हैं, इसलिए जब सॉर्टेड डिक्शनरी को सभी चर सूची सूची बॉक्स नहीं मिलती एक त्रुटि देता है क्योंकि सभी संख्याएं मिलती हैं (कोई अंतराल नहीं)।

कृपया सलाह दें।

उत्तर

7

मैं क्रमबद्ध शब्दकोश के बजाय एक सूची का प्रयोग करेंगे। आपकी संख्या सूची में सूचकांक होगी। इस तरह यदि आप सूची से किसी आइटम को हटाते हैं (शायद सूची का उपयोग कर रहे हैं। RemoveAt (अनुक्रमणिका)), अन्य सभी सूचकांक प्रभावी तरीके से "अपडेट" हो जाएंगे।

+0

हां, मेरा विचार भी (लेकिन मैंने अपने जवाब में गलती की है इसलिए मैं इसके बदले में वोट दूंगा)। –

+0

यह सही है। फिर मैं सूची के सूचकांक के आधार पर सभी परिवर्तनीय मानों को समायोजित कर सकता हूं। शानदार, धन्यवाद! – Fusyion