একটি অ্যারে একটি নির্দিষ্ট টাইপের নির্দিষ্ট সংখ্যক এলিমেন্ট রিপ্রেজেন্ট করে। এলিমেন্টগুলো মেমরির একটি সन्नিবিষ্ট ব্লকে সংরক্ষিত থাকে এবং যতক্ষণ না আপনি একটি এলিমেন্টের ইন্ডেক্স জানেন, ততক্ষণ そ এলিমেন্টে খুব দক্ষতার সাথে অ্যাক্সেস করা যায়।
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# কম্পাইলার এলিমেন্টগুলকে তাদের ডিফল্ট ভ্যালুতে ইনিশিয়ালাইজ করে। উদাহরণস্বরূপ, ইন্টিজার অ্যারে তৈরি করলে প্রতিটি এলিমেন্টের ভ্যালু ০ সেট হয়।
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