उदाहरण के लिए C # में, सरणियों की लंबाई संपत्ति है। लेकिन अन्य संग्रह प्रकार जैसे सूचियां, आदि की गणना संपत्ति है। क्या इन दोनों के अलग होने का एक कारण है? अगर ऐसा है तो मैं जानना चाहूंगा।
उदाहरण के लिए C # में, सरणियों की लंबाई संपत्ति है। लेकिन अन्य संग्रह प्रकार जैसे सूचियां, आदि की गणना संपत्ति है। क्या इन दोनों के अलग होने का एक कारण है? अगर ऐसा है तो मैं जानना चाहूंगा।
जवाबों:
उन्हें अलग नाम दिया गया है क्योंकि शब्दार्थ वे काफी अलग हैं:
एक संग्रह की गणना वर्तमान में इसमें संग्रहीत वस्तुओं की संख्या है और समय के साथ संभावित रूप से बदल सकती है।
एक सरणी की लंबाई अधिकतम आइटम है जो इसे पकड़ सकती है (इसमें 10 की लंबाई होगी, भले ही आपने इसमें कई आइटम संग्रहीत नहीं किए हों) और अपरिवर्तनीय है।
उदाहरण:
अगर मेरे पास एक बाल्टी है जो उसमें अधिकतम 100 गेंदों को फिट कर सकती है, तो इसकी लंबाई 100 है। अगर मैं इसमें 50 गेंद डालूं तो इसकी गिनती 50 है।
अगर मैं 10 और गेंद जोड़ दूं तो गिनती 60 हो जाती है लेकिन लंबाई अभी भी 100 है। लंबाई बदलने के लिए मुझे एक अलग बाल्टी लेने की जरूरत है।
ऐरे शायद लंबाई शब्द का उपयोग करते हैं क्योंकि हुड के तहत यह आइटम के आकार से गुणा की गई क्षमता के आधार पर एक सन्निहित ब्लॉक (लंबाई) को आवंटित कर रहा है। हालांकि यह तथ्य कि सूची वर्ग "क्षमता" का उपयोग एक समान (हालांकि परस्पर करने योग्य) अवधारणा के लिए करता है, यह दर्शाता है कि सरणी ऐतिहासिक कारणों से "लंबाई" शब्द का उपयोग कर सकती है।
T[]N की लंबाई के साथ A हमेशा प्रकार के N मान को संग्रहीत करता है T। शब्दार्थ, उन सभी मूल्यों को सार्थक नहीं किया जा सकता है (वे nullउदाहरण के लिए हो सकते हैं ), लेकिन वे मौजूद हैं। यह क्षमता के सामान्य अर्थ से अलग है ( List<T>उदाहरण के लिए उपयोग किया जाता है )। आप सही हैं जो Countबदल सकते हैं जबकि Lengthनहीं कर सकते। फिर, कुछ भी अनिवार्य नहीं Countहै, वास्तव में, परिवर्तन। इसका उपयोग अपरिवर्तनीय संग्रह के लिए भी किया जाता है।
count-प्रतिरूपता होनी चाहिए ।