एक ऐरे एक दिए गए प्रकार के तत्वों की एक निश्चित संख्या को दर्शाता है। तत्व मेमोरी के एक सन्निहित ब्लॉक में संग्रहीत होते हैं और तत्वों तक अत्यधिक कुशल पहुंच प्रदान करते हैं जब तक आप किसी तत्व का इंडेक्स जानते हैं।
C# में ऐरे घोषित करने और आरंभ करने का सिंटैक्स निम्नानुसार है −
// create a string array to hold 5 languages string[] languages = new string[3];
एक बार ऐरे घोषित हो जाने पर, आप ऐरे पर स्क्वायर नोटेशन का उपयोग करके ऐरे में आइटम भर सकते हैं।
languages[0] = "csharp"; languages[1] = "visual basic"; languages[2] = "f#";
हालांकि, एक वैकल्पिक, संक्षिप्त सिंटैक्स है जो उपरोक्त दो चरणों को एक ही चरण में जोड़ता है।
string[] languages = new string[] { "csharp", "visual basic", "f#" };C# में निहित रूप से टाइप किए गए चरों के साथ, आप वेरिएबल नाम के बाईं ओर से प्रकार को हटाकर केवल var का उपयोग कर सकते हैं।
var languages = new string[] { "csharp", "visual basic", "f#" };आप उसी स्क्वायर नोटेशन का उपयोग करके ऐरे में किसी भी तत्व तक पहुंच सकते हैं।
string language = languages[0]; Console.WriteLine(language); // prints csharp
ऐरे पर Length प्रॉपर्टी हमें बताती है कि उस ऐरे में कितने आइटम हैं।
int count = languages.Length; Console.WriteLine(count); // 3
यह याद रखना महत्वपूर्ण है कि एक बार ऐरे बन जाने के बाद आप उसकी लंबाई नहीं बदल सकते। ऐरे की सीमा से बाहर किसी तत्व तक पहुंचने का प्रयास एक अपवाद फेंकता है।
string lang = languages[3]; // throws System.IndexOutOfRangeException
यदि आप किसी ऐरे पर लूप करना चाहते हैं, तो भाषा द्वारा प्रदान किए गए for या foreach लूप का उपयोग करें।
// for loop for (int i = 0; i < languages.Length; i++){ string l = languages[i]; Console.WriteLine(l); // prints the names of languages in sequence } // foreach loop foreach (string l in languages){ Console.WriteLine(l); // prints the names of languages in sequence }डिफ़ॉल्ट मान
जब आप एक ऐरे बनाते हैं, तो C# कंपाइलर तत्वों को उनके डिफ़ॉल्ट मानों पर आरंभ करता है। उदाहरण के लिए, पूर्णांकों का एक ऐरे बनाने से प्रत्येक तत्व का मान 0 पर सेट हो जाता है।
var numbers = new int[3]; foreach (int num in numbers){ Console.WriteLine(num); // prints 000 }जब तत्व एक मूल्य प्रकार से संबंधित होता है, तो प्रकार के प्रत्येक सदस्य को उसके डिफ़ॉल्ट मान पर असाइन किया जाता है।
Point[] a = new Point[4]; int x = a[2].X; Console.WriteLine(x); // prints 0 public struct Point { public int X, Y; }हालांकि, संदर्भ प्रकारों के लिए, कंपाइलर बस प्रत्येक आइटम के लिए नल संदर्भ बनाता है।
User[] u = new User[4]; int y = u[2].Y; // NullReference exception public class User { public int X, Y; }त्रुटि से बचने के लिए, आपको प्रत्येक आइटम को स्पष्ट रूप से आरंभ करना होगा, जैसा कि नीचे दिखाया गया है।
User[] users = new User[5]; for (int i = 0; i < users.Length; i++) // Iterate i from 0 to 999 users[i] = new User();
उदाहरण
using System; class Program{ static void Main(){ string[] languages = new string[3]; // create a string array to hold 5 languages languages[0] = "csharp"; languages[1] = "visual basic"; languages[2] = "f#"; string[] langugages_two = new string[] { "csharp", "visual basic", "f#" }; var languages_three = new string[] { "csharp", "visual basic", "f#" }; string language = languages[0]; Console.WriteLine(language); // prints csharp int count = languages.Length; // 3 Console.WriteLine(count); //string lang = languages[3]; // throws System.IndexOutOfRangeException // for loop for (int i = 0; i < languages.Length; i++){ string l = languages[i]; Console.WriteLine(l); // prints the names of languages in sequence } // foreach loop foreach (string l in languages){ Console.WriteLine(l); // prints the names of languages in sequence } var numbers = new int[3]; foreach (int num in numbers){ Console.WriteLine(num); // prints 000 } Point[] a = new Point[4]; int x = a[2].X; Console.WriteLine(x); // prints 0 User[] u = new User[4]; //int y = u[2].Y; // NullReference exception User[] users = new User[5]; for (int i = 0; i <users.Length; i++) // Iterate i from 0 to 999 users[i] = new User(); } } public struct Point { public int X, Y; } public class User { public int X, Y; }आउटपुट
csharp 3 csharp visual basic f# csharp visual basic f# 0 0 0 0