একটি অ্যারে একটি নির্দিষ্ট ধরণের উপাদানগুলির একটি নির্দিষ্ট সংখ্যক প্রতিনিধিত্ব করে। উপাদানগুলি মেমরির একটি সংলগ্ন ব্লকে সংরক্ষণ করা হয় এবং যতক্ষণ আপনি একটি উপাদানের সূচী জানেন ততক্ষণ উপাদানগুলিতে অত্যন্ত দক্ষ অ্যাক্সেস প্রদান করে৷
একটি অ্যারে ঘোষণা এবং শুরু করার জন্য 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
একটি অ্যারের দৈর্ঘ্য বৈশিষ্ট্য আমাদের বলে যে অ্যারেতে কতগুলি আইটেম রয়েছে৷
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