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

C#-তে ArrayList-র সব উপাদান সরাতে Clear() মেথড ব্যবহার

ArrayList ক্লাসের Clear() মেথড লিস্টের সব উপাদান একসাথে সরিয়ে দেয় এবং Count প্রোপার্টি শূন্য করে দেয়। এটি O(n) অপারেশন যেখানে n হলো উপাদান সংখ্যা।

উদাহরণ ১: একাধিক ArrayList এবং Clear() ব্যবহার

using System;
using System.Collections;

public class Demo {
    public static void Main(string[] args) {
        ArrayList list1 = new ArrayList();
        list1.Add("A");
        list1.Add("B");
        list1.Add("C");
        list1.Add("D");
        list1.Add("E");
        list1.Add("F");
        list1.Add("G");
        list1.Add("H");
        list1.Add("I");

        Console.WriteLine("ArrayList1 উপাদানসমূহ...");
        foreach (string res in list1) {
            Console.WriteLine(res);
        }

        ArrayList list2 = new ArrayList();
        list2.Add("A");
        list2.Add("B");
        list2.Add("C");
        list2.Add("D");
        list2.Add("E");
        list2.Add("F");
        list2.Add("G");
        list2.Add("H");
        list2.Add("I");

        Console.WriteLine("\nArrayList2 উপাদানসমূহ...");
        foreach (string res in list2) {
            Console.WriteLine(res);
        }

        // list3 = list2 (রেফারেন্স কপি)
        ArrayList list3 = new ArrayList();
        list3 = list2;
        Console.WriteLine("ArrayList3 == ArrayList2? = " + list3.Equals(list2));  // True (সেম অবজেক্ট)

        Console.WriteLine("ArrayList2-র উপাদান সংখ্যা = " + list2.Count);  // ৯

        // list2 Clear করা
        list2.Clear();
        Console.WriteLine("ArrayList2-র উপাদান সংখ্যা (আপডেট) = " + list2.Count);  // ০
        // নোট: list3.Countও ০ হবে কারণ list3 এবং list2 একই অবজেক্ট রেফার করে
    }
}

আউটপুট

ArrayList1 উপাদানসমূহ...
A
B
C
D
E
F
G
H
I

ArrayList2 উপাদানসমূহ...
A
B
C
D
E
F
G
H
I
ArrayList3 == ArrayList2? = True
ArrayList2-র উপাদান সংখ্যা = 9
ArrayList2-র উপাদান সংখ্যা (আপডেট) = 0

উদাহরণ ২: সিম্পল ArrayList Clear()

using System;
using System.Collections;

public class Demo {
    public static void Main(string[] args) {
        ArrayList arrList = new ArrayList();
        arrList.Add("One");
        arrList.Add("Two");
        arrList.Add("Three");
        arrList.Add("Four");
        arrList.Add("Five");

        Console.WriteLine("ArrayList উপাদানসমূহ...");
        foreach (string res in arrList) {
            Console.WriteLine(res);
        }

        Console.WriteLine("ArrayList-র উপাদান সংখ্যা = " + arrList.Count);  // ৫

        arrList.Clear();

        Console.WriteLine("ArrayList-র উপাদান সংখ্যা (আপডেট) = " + arrList.Count);  // ০
    }
}

আউটপুট

ArrayList উপাদানসমূহ...
One
Two
Three
Four
Five
ArrayList-র উপাদান সংখ্যা = 5
ArrayList-র উপাদান সংখ্যা (আপডেট) = 0

ArrayList.Clear() - গুরুত্বপূর্ণ বিষয়সমূহ

  • সময় জটিলতা: O(n) - সব উপাদান রিলিজ করতে হয়।
  • Count: Clear() পর Count = 0 হয়।
  • Capacity: Clear() করলে Capacity অপরিবর্তিত থাকে (মেমরি রিজার্ভড থাকে)।
  • Capacity রিসেট: TrimToSize() কল করলে Capacity = Count (=0) হয়।
  • রেফারেন্স সেম্যান্টিক্স: list3 = list2 হলে দুটি ভেরিয়েবল একই অবজেক্ট রেফার করে, একটো Clear করলে অন্যটিও খালি হয়।

ArrayList vs List<T> - Clear() তুলনা

বৈশিষ্ট্যArrayList.Clear()List<T>.Clear()
টাইপ সেফটিনন-জেনেরিক (object)জেনেরিক (টাইপ-সেফ)
বক্সিং/আনবক্সিংহ্যাঁ (value type-এর জন্য)না
পারফরম্যান্সস্লোওয়ারফাস্টার
Capacity আচরণঅপরিবর্তিতঅপরিবর্তিত

আধুনিক বিকল্প: List<T> ব্যবহার করুন

// সুপারিশকৃত আধুনিক পদ্ধতি
List<string> list = new List<string> { "One", "Two", "Three", "Four", "Five" };
list.Clear();  // একই আচরণ, কিন্তু টাইপ-সেফ এবং ফাস্ট
Console.WriteLine(list.Count);  // 0

সুপারিশ: নতুন প্রজেক্টে ArrayList এর পরিবর্তে List<T> ব্যবহার করুন। ArrayList লিগ্যাসি কোড এবং .NET Framework 1.x কম্প্যাটিবিলিটির জন্য।

  1. C#-তে HashSet-র সব উপাদান সরাতে Clear() মেথড ব্যবহার

  2. C#-এ StringDictionary-র সব এন্ট্রি মুছুন

  3. জাভাতে ArrayList-এ থেকে সব এলিমেন্ট রিমূভ করা

  4. জাভাতে ArrayList অবজেক্ট থেকে রিডান্ডান্ট (অনাবশ্যক) এলিমেন্ট সরাতে কীভাবে?