मैं सी # में एक सरणी (लंबाई / आइटम की संख्या) का आकार कैसे निर्धारित कर सकता हूं?
मैं सी # में एक सरणी (लंबाई / आइटम की संख्या) का आकार कैसे निर्धारित कर सकता हूं?
जवाबों:
यदि यह एक आयामी सरणी है a
,
a.Length
के तत्वों की संख्या देगा a
।
यदि b
एक आयताकार बहु-आयामी सरणी है (उदाहरण के लिए, int[,] b = new int[3, 5];
)
b.Rank
आयामों की संख्या देगा (2) और
b.GetLength(dimensionIndex)
किसी भी दिए गए आयाम की लंबाई प्राप्त करेंगे (आयामों के लिए 0-आधारित अनुक्रमण - तो b.GetLength(0)
3 है और b.GetLength(1)
5 है)।
अधिक जानकारी के लिए System.Array प्रलेखन देखें ।
जैसा कि @Lucero टिप्पणियों में बताती है, एक "दांतेदार सरणी" की अवधारणा है, जो वास्तव में एकल आयामी सरणी (आमतौर पर एकल-आयामी) सरणियों से अधिक कुछ नहीं है।
उदाहरण के लिए, एक निम्नलिखित हो सकता है:
int[][] c = new int[3][];
c[0] = new int[] {1, 2, 3};
c[1] = new int[] {3, 14};
c[2] = new int[] {1, 1, 2, 3, 5, 8, 13};
ध्यान दें कि सभी के 3 सदस्यों की c
लंबाई अलग-अलग है। इस मामले में, के रूप में पहले c.Length
के तत्वों की संख्या का संकेत होगा c
, (3) और c[0].Length
, c[1].Length
, और c[2].Length
3, 2, और 7 क्रमश: हो जाएगा।
int[][]
) ;-)
[,]
और [][]
स्पष्ट नहीं लगता है, इसलिए यह अभी भी ध्यान देने योग्य हो सकता है कि [][]
आपके उत्तर के अर्थ में बहुआयामी सरणी नहीं है।
b.GetLength[0] is 3 and b.GetLength[1] is 5
होना चाहिए b.GetLength(0) and b.GetLength(1)
।
इस प्रश्न का उत्तर जानने के लिए आप ऐरे के प्रलेखन को देख सकते हैं।
इस विशेष मामले में आपको संभवतः लंबाई की आवश्यकता होगी :
int sizeOfArray = array.Length;
लेकिन चूंकि यह एक ऐसा बुनियादी सवाल है और आपको इसमें कोई संदेह नहीं है, ऐसे ही कई और सवाल हैं, जिनका जवाब देने के बजाय मैं आपको बताऊंगा कि आपको खुद ही इसका जवाब कैसे खोजना है।
विजुअल स्टूडियो इन्टेलिसेंस
जब आप एक चर का नाम टाइप करते हैं और .
कुंजी दबाते हैं तो यह आपको उस वस्तु पर उपलब्ध सभी तरीकों, गुणों, घटनाओं आदि की एक सूची दिखाता है। जब आप किसी सदस्य को उजागर करते हैं तो यह आपको इसका संक्षिप्त विवरण देता है कि वह क्या करता है।
एफ 1 दबाएं
यदि आपको कोई ऐसी विधि या संपत्ति मिल जाए जो आप चाहते हैं, लेकिन आप निश्चित नहीं हैं, तो आप कर्सर को इस पर ले जा सकते हैं और मदद प्राप्त करने के लिए F1 दबा सकते हैं। यहां आपको संबंधित जानकारी के लिए अधिक विस्तृत विवरण और लिंक मिलते हैं।
खोज
खोज शब्द size of array in C#
कई लिंक देता है जो आपको आपके प्रश्न का उत्तर बताता है और बहुत कुछ। सबसे महत्वपूर्ण कौशलों में से एक जो प्रोग्रामर को सीखना चाहिए, वह यह है कि जानकारी कैसे प्राप्त करें। अपने आप को जवाब खोजने के लिए अक्सर तेज होता है, खासकर अगर वही सवाल पहले पूछा गया हो।
एक ट्यूटोरियल का उपयोग करें
यदि आप C # सीखना शुरू कर रहे हैं तो आपको एक ट्यूटोरियल फॉलो करना आसान हो जाएगा। मैं MSDN पर C # ट्यूटोरियल की सिफारिश कर सकता हूं । यदि आप एक पुस्तक चाहते हैं, तो मैं आवश्यक C # सुझाऊंगा ।
स्टैक ओवरफ़्लो
यदि आप स्वयं ही उत्तर नहीं खोज पा रहे हैं, तो कृपया स्टैक ओवरफ्लो पर प्रश्न पोस्ट करने के लिए स्वतंत्र महसूस करें। लेकिन हम इसकी सराहना करते हैं यदि आप दिखाते हैं कि आपने पहले स्वयं उत्तर खोजने का प्रयास किया है।
1 आयामी सरणी के लिए
int[] listItems = new int[] {2,4,8};
int length = listItems.Length;
बहुआयामी सरणी के लिए
int length = listItems.Rank;
1 आयाम का आकार प्राप्त करने के लिए
int length = listItems.GetLength(0);
Rank
संपत्ति मदों की संख्या वापस नहीं करता है, यह आयाम की संख्या देता है।
Length
, Rank
, GetLength
)
yourArray.Length
:)
यह इस प्रकार है: 1D:
type[] name=new type[size] //or =new type[]{.....elements...}
2 डी:
type[][]name=new type[size][] //second brackets are emtpy
तब जब आप इस सरणी का उपयोग करते हैं:
name[i]=new type[size_of_sec.Dim]
या आप एक मैट्रिक्स की तरह कुछ घोषित कर सकते हैं
type[ , ] name=new type [size1,size2]
अब तक क्या याद किया गया है जो मुझे अचानक चिढ़ गया था:
मुझे सरणी के अंदर वस्तुओं की मात्रा कैसे पता चलेगी? है .Length
बराबर.Count
एक सूची है?
इसका उत्तर है: टाइप X की वस्तुओं की मात्रा जिसे new X[number]
आपके द्वारा बनाए गए प्रकार X की एक सरणी में डाल दिया गया है !
उदाहरण के लिए। एक काउंटर का उपयोग: int countItemsInArray = 0
और countItemsInArray++
अपने सरणी के लिए हर असाइनमेंट के लिए।
( पहले से आवंटित प्रकार X के आइटम (संदर्भ) के new X[number]
लिए बनाई गई सरणी में number
, आप अपने पहले असाइनमेंट के रूप में किसी भी स्थान पर असाइन कर सकते हैं, उदाहरण के लिए (यदि number
= 100 और चर नाम = a
) a[50] = new X();
।
मैं नहीं जानता कि क्या C # सृजन पर किसी सरणी के अंदर प्रत्येक स्थान का प्रारंभिक मान निर्दिष्ट करता है, यदि यह नहीं है या प्रारंभिक मूल्य जिसकी आप तुलना नहीं कर सकते हैं (क्योंकि यह आपके द्वारा सरणी में रखा गया मान हो सकता है), आप ट्रैक करना होगा कि आपके द्वारा पहले से असाइन किए गए एरे के अंदर कौन सी जगहें हैं, यदि आप क्रमिक रूप से शुरू नहीं करते हैं 0
(जिस स्थिति में सभी से छोटा हैcountItemsInArray
सौंपा जाएगा)।)
अपने प्रश्न में एक सरणी के आकार (लंबाई / मदों की संख्या) के आधार पर / "द्वारा विभाजित" अभी भी बाद के "वैकल्पिक" या के लिए खड़े करने के लिए है को कवर किया जाना ( "मदों की संख्या" मैं बस के रूप में दे दी है "है आइटम की राशि "और अन्य .Length
जो number
मेरे कोड के मूल्य से ऊपर दिए गए हैं):
C # के पास एक sizeof
ऑपरेटर ( https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/sizeof ) है। अंतर्निहित प्रकारों (जैसे int) के लिए उपयोग करना सुरक्षित है (और केवल प्रकारों पर संचालित होता है (चर नहीं))। इस b
प्रकार int
बाइट्स में प्रकार की एक सरणी का आकार होगा b.Length * sizeof(int)
।
(निर्माण की सभी जगह पहले से ही निर्मित होने के कारण, जैसा कि ऊपर उल्लेखित है, और sizeof
केवल प्रकारों पर काम करने के कारण, कोई भी कोड sizeof(variable)/sizeof(type)
काम नहीं करेगा या ट्रैकिंग के बिना वस्तुओं की मात्रा प्राप्त करेगा।)