एक सरणी किसी दिए गए प्रकार के तत्वों की एक निश्चित संख्या का प्रतिनिधित्व करती है। तत्वों को स्मृति के एक सन्निहित ब्लॉक में संग्रहीत किया जाता है और जब तक आप किसी तत्व की अनुक्रमणिका को जानते हैं, तब तक तत्वों को अत्यधिक कुशल पहुंच प्रदान करते हैं।
किसी सरणी को घोषित करने और आरंभ करने के लिए 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 }
डिफ़ॉल्ट मान
जब आप एक सरणी बनाते हैं, तो सी # कंपाइलर तत्वों को उनके डिफ़ॉल्ट मानों में प्रारंभ करता है। उदाहरण के लिए, पूर्णांकों की एक सरणी बनाने से प्रत्येक तत्व का मान 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