थोड़ी पृष्ठभूमि की जानकारी:
जैसा कि, यदि आप चीजों का एक गतिशील संग्रह करना चाहते हैं, तो उपयोग करें List<T>। आंतरिक रूप से, एक सूची भंडारण के लिए एक सरणी का उपयोग करती है। उस सरणी का किसी भी अन्य सरणी की तरह एक निश्चित आकार है। एक बार एक सरणी के आकार के रूप में घोषित होने के बाद, यह नहीं बदलता है। जब आप किसी आइटम को जोड़ते हैं List, तो वह सरणी में जुड़ जाता है। प्रारंभ में, Listएक सरणी के साथ शुरू होता है , जो मुझे लगता है कि 16 की लंबाई है। जब आप 17 वें आइटम को जोड़ने की कोशिश करते हैं List, तो क्या होता है कि एक नया सरणी आवंटित किया जाता है, यह (मुझे लगता है) पुराने के आकार से दोगुना है , तो 32 आइटम। फिर पुराने सरणी की सामग्री को नए सरणी में कॉपी किया जाता है। तो जबकि Listबाहर के पर्यवेक्षक को गतिशील दिखाई दे सकता है, आंतरिक रूप से इसे नियमों का भी पालन करना पड़ता है।
और जैसा कि आप अनुमान लगा सकते हैं, सरणियों की नकल और आवंटन मुफ्त नहीं है, इसलिए किसी को उन लोगों में से कुछ का लक्ष्य रखना चाहिए और ऐसा करने के लिए आप Listसरणी के एक प्रारंभिक आकार को निर्दिष्ट (निर्माणकर्ता में ) कर सकते हैं , जो एक आदर्श परिदृश्य में आप चाहते हैं कि सब कुछ धारण करने के लिए बस बड़ा है। हालाँकि, यह माइक्रो-ऑप्टिमाइज़ेशन है और यह संभावना नहीं है कि यह आपके लिए कभी मायने रखेगा, लेकिन यह जानना हमेशा अच्छा होता है कि आप वास्तव में क्या कर रहे हैं।
List<int[]> myInts = new List<int[]>();काम कर सकता है।