C# ऐरे ट्यूटोरियल: बनाएं, घोषित करें, आरंभ करें
⚡ स्मार्ट सारांश
C# में, एक ही वेरिएबल नाम के अंतर्गत समान डेटा प्रकार वाले तत्वों का एक निश्चित आकार का संग्रह संग्रहीत होता है। प्रत्येक तत्व शून्य-आधारित इंडेक्स पर स्थित होता है, इसलिए मानों को घोषित करना, आरंभ करना और उन तक पहुंचना तेज़ और अनुमानित रहता है।

C# में Arrays क्या है?
ऐरे का उपयोग तत्वों के संग्रह या श्रृंखला को संग्रहीत करने के लिए किया जाता है। ये तत्व एक ही प्रकार के होंगे।
उदाहरण के लिए, यदि आपके पास पूर्णांक मानों की एक सरणी है, तो सरणी [1, 2, 3, 4] जैसे मानों का संग्रह हो सकती है। यहाँ सरणी में तत्वों की संख्या 4 है।
जब आप एक ही प्रकार के मानों का संग्रह संग्रहीत करना चाहते हैं तो ऐरे उपयोगी होते हैं। इसलिए किसी को घोषित करने के बजाय परिवर्तनशील प्रत्येक तत्व के लिए, आप केवल एक चर घोषित कर सकते हैं।
यह चर एक सारणी या तत्वों की सूची की ओर संकेत करेगा, जो सारणी के तत्वों को संग्रहीत करने के लिए जिम्मेदार होगा।
आइए देखें कि हम C# में arrays के साथ कैसे काम कर सकते हैं। हमारे उदाहरण में, हम पूर्णांकों की एक array घोषित करेंगे और उसके अनुसार उनके साथ काम करेंगे।
ध्यान दें कि नीचे दिया गया सारा कोड Program.cs फ़ाइल में बनाया जा रहा है।
चरण 1) एक सरणी घोषित करना - पहला कदम एक सरणी घोषित करना है। आइए देखें कि हम नीचे दिए गए कोड उदाहरण से इसे कैसे प्राप्त कर सकते हैं।
Code स्पष्टीकरण: -
- पहला भाग है डाटा प्रकारयह सरणी में उपयोग किए जाने वाले तत्वों के प्रकार को निर्दिष्ट करता है। इसलिए हमारे मामले में, हम पूर्णांकों की एक सरणी बना रहे हैं।
- दूसरा भाग [ ], जो सरणी की रैंक निर्दिष्ट करता है। (रैंक एक प्लेसहोल्डर है जो सरणी में शामिल तत्वों की संख्या निर्दिष्ट करता है)
- अगला नाम है सरणी का, जो हमारे मामले में 'values' है। ध्यान दें कि आपको एक हरे रंग की टेढ़ी-मेढ़ी रेखा दिखाई देती है, इसकी चिंता न करें। यह सिर्फ़ .Net कह रहा है कि आपने एक सरणी घोषित की है, लेकिन उसका कहीं भी उपयोग नहीं कर रहे हैं।
चरण 2) अगला चरण सरणी को आरंभीकृत करना है। यहाँ हम सरणी में रखे जाने वाले मानों की संख्या निर्दिष्ट करने जा रहे हैं। हम सरणी के प्रत्येक तत्व को मान भी निर्दिष्ट करने जा रहे हैं।
Code स्पष्टीकरण: -
- सबसे पहले, हम सारणी में रखे जाने वाले तत्वों की संख्या 3 निर्धारित कर रहे हैं। अतः वर्गाकार कोष्ठकों में हम कह रहे हैं कि सारणी में 3 तत्व रखे जाएंगे।
- फिर हम ऐरे के प्रत्येक तत्व को मान निर्दिष्ट करते हैं। हम ऐसा वेरिएबल का नाम और ऐरे में इंडेक्स की स्थिति बताकर कर सकते हैं। जैसे values[0] का अर्थ है कि हम ऐरे की पहली स्थिति में एक मान संग्रहित कर रहे हैं। इसी प्रकार दूसरी स्थिति को एक्सेस करने के लिए हम values[1] का उपयोग करते हैं, और इसी तरह आगे भी।
नोट: - Arrays में, सूचकांक स्थिति 0 से शुरू होती है।
चरण 3) अब कंसोल में ऐरे के अलग-अलग तत्वों को प्रदर्शित करें। इसे प्राप्त करने के लिए नीचे दिया गया कोड जोड़ें।
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Int32[] value; value=new Int32[3]; value[0]=1; value[1]=2; value[2]=3; Console.WriteLine(value[0]); Console.WriteLine(value[1]); Console.WriteLine(value[2]); Console.ReadKey(); } } }
Code स्पष्टीकरण: -
यह सरल भाग है जिसमें हम तत्व के प्रत्येक मान को कंसोल पर भेजने के लिए Console.WriteLine विधि का उपयोग करते हैं।
ध्यान दें कि हम प्रत्येक तत्व तक सूचकांक स्थिति के साथ सरणी चर नाम की सहायता से पहुंच रहे हैं।
यदि उपरोक्त कोड ठीक से दर्ज किया गया है और प्रोग्राम निष्पादित किया गया है, तो निम्नलिखित आउटपुट प्रदर्शित होगा।
आउटपुट:
आउटपुट से, आप कंसोल में प्रदर्शित हो रहे ऐरे के सभी मान देख सकते हैं।
C# में foreach लूप का उपयोग करके ऐरे में लूप कैसे चलाएं
प्रत्येक तत्व को उसके इंडेक्स द्वारा पढ़ना कारगर तो है, लेकिन जब किसी ऐरे में कई मान हों तो यह थकाऊ हो जाता है। foreach लूप ऐरे के प्रत्येक तत्व को क्रम से देखने का एक आसान और सुव्यवस्थित तरीका प्रदान करता है। tracआप स्वयं एक इंडेक्स वेरिएबल बना सकते हैं।
foreach स्टेटमेंट एरे से प्रत्येक आइटम को एक-एक करके लेता है और उसे लूप वेरिएबल में कॉपी करता है। फिर आप उस वेरिएबल का उपयोग लूप बॉडी के अंदर करते हैं। चूंकि लूप अंतिम एलिमेंट पर स्वचालित रूप से रुक जाता है, इसलिए foreach एरे के अंत से आगे पढ़ने के जोखिम को खत्म कर देता है।
using System; namespace DemoApplication { class Program { static void Main(string[] args) { Int32[] values = new Int32[3] {1, 2, 3}; foreach (Int32 item in values) { Console.WriteLine(item); } Console.ReadKey(); } } }
ऊपर दिए गए उदाहरण में तीन पूर्णांकों का एक ऐरे घोषित और आरंभ किया गया है, फिर foreach लूप का उपयोग करके उस पर कार्रवाई की गई है। प्रत्येक कार्रवाई में चर मद अगला मान प्राप्त होता है, और Console.WriteLine उसे प्रिंट करता है। आउटपुट में 1, 2 और 3 संख्याएँ अलग-अलग पंक्तियों में दिखाई देती हैं।
एरे के साथ foreach फ़ंक्शन का उपयोग करते समय याद रखने योग्य मुख्य बिंदु:
- लूप वेरिएबल रीड-ओनली होता है, इसलिए foreach लूप का उपयोग मानों को पढ़ने के लिए सबसे अच्छा होता है, न कि उन्हें यथास्थान बदलने के लिए।
- लुक करते समय तत्वों को संशोधित करने के लिएpingइसके बजाय, इंडेक्स के साथ फॉर लूप का उपयोग करें।
- foreach फ़ंक्शन एकल-आयामी सरणियों, बहुआयामी सरणियों और पुनरावृति का समर्थन करने वाले किसी भी संग्रह के साथ काम करता है।
C# बहुआयामी सरणियाँ
अब तक दिखाए गए सभी एरे एकल-आयामी हैं, यानी उनमें मानों की एक साधारण सूची संग्रहित होती है। C# बहुआयामी एरे का भी समर्थन करता है, जिनमें तत्वों को पंक्तियों और स्तंभों के ग्रिड में व्यवस्थित किया जाता है। द्वि-आयामी एरे सबसे सामान्य रूप है और मैट्रिक्स, गेम बोर्ड और तालिकाओं जैसे डेटा के लिए उपयुक्त है।
वर्ग कोष्ठक के अंदर अल्पविराम लगाकर आप एक द्वि-आयामी सरणी घोषित करते हैं। प्रत्येक अतिरिक्त अल्पविराम एक और आयाम जोड़ता है, इसलिए int[,] द्वि-आयामी है और int[,,] त्रि-आयामी है। फिर प्रत्येक आयाम के लिए एक सूचकांक के साथ तत्वों तक पहुँचा जाता है।
using System; namespace DemoApplication { class Program { static void Main(string[] args) { int[,] matrix = new int[2, 2] { {1, 2}, {3, 4} }; Console.WriteLine(matrix[0, 0]); Console.WriteLine(matrix[1, 1]); Console.ReadKey(); } } }
यहां मैट्रिक्स ऐरे में दो पंक्तियाँ और दो स्तंभ हैं। मैट्रिक्स[0, 0] तत्व 1 लौटाता है, और मैट्रिक्स[1, 1] 4 लौटाता है। ऐरे की घोषणा के समय आयामों की संख्या निश्चित होती है, जबकि प्रत्येक आयाम का आकार ऐरे बनाते समय निर्धारित किया जाता है।
C# जैग्ड एरेज़
जैग्ड ऐरे एक ऐसा ऐरे है जिसके तत्व स्वयं ऐरे होते हैं। आयताकार बहुआयामी ऐरे के विपरीत, प्रत्येक आंतरिक ऐरे की लंबाई भिन्न हो सकती है, यही कारण है कि जैग्ड ऐरे को अक्सर ऐरे-ऑफ-ऐरे कहा जाता है। यह लचीलापन तब उपयोगी होता है जब पंक्तियों में स्वाभाविक रूप से अलग-अलग संख्या में मान होते हैं।
आप दो वर्गाकार कोष्ठकों का उपयोग करके एक जैग्ड ऐरे घोषित करते हैं, फिर प्रत्येक आंतरिक ऐरे को अलग-अलग बनाते हैं। निम्नलिखित उदाहरण एक जैग्ड ऐरे बनाता है जिसमें पहली पंक्ति में तीन मान और दूसरी पंक्ति में दो मान होते हैं।
using System; namespace DemoApplication { class Program { static void Main(string[] args) { int[][] jagged = new int[2][]; jagged[0] = new int[] {1, 2, 3}; jagged[1] = new int[] {4, 5}; Console.WriteLine(jagged[0][2]); Console.WriteLine(jagged[1][1]); Console.ReadKey(); } } }
एक्सप्रेशन jagged[0][2] पहली पंक्ति के तीसरे तत्व, यानी 3 को पढ़ता है, और jagged[1][1] दूसरी पंक्ति के दूसरे तत्व, यानी 5 को पढ़ता है। चूंकि प्रत्येक पंक्ति एक अलग ऐरे है, इसलिए पंक्ति की लंबाई भिन्न होने पर भी जैग्ड ऐरे मेमोरी का कुशलतापूर्वक उपयोग करते हैं, हालांकि प्रत्येक आंतरिक ऐरे को इनिशियलाइज़ करने के लिए एक अतिरिक्त चरण की आवश्यकता होती है।




