কম্পিউটার টিউটোরিয়াল

C#-তে অ্যারে কীভাবে কাজ করে?


একটি অ্যারে একটি নির্দিষ্ট টাইপের নির্দিষ্ট সংখ্যক এলিমেন্ট রিপ্রেজেন্ট করে। এলিমেন্টগুলো মেমরির একটি সन्नিবিষ্ট ব্লকে সংরক্ষিত থাকে এবং যতক্ষণ না আপনি একটি এলিমেন্টের ইন্ডেক্স জানেন, ততক্ষণ そ এলিমেন্টে খুব দক্ষতার সাথে অ্যাক্সেস করা যায়।

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
  1. স্ক্যানার কীভাবে কাজ করে

  2. Wi-Fi এক্সটেন্ডার কীভাবে কাজ করে?

  3. নেটওয়ার্ক সিকিউরিটি ক্ষেত্রে ক্যারিয়ার ও জব সুযোগ

  4. জাভাস্ক্রিপ্টে অ্যারে রিডিউস করা (reduce)