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

C#-এ ArrayList-এর শ্যালো কপি তৈরি করা: Clone মেথড

C#-এ ArrayList.Clone() মেথড একটি শ্যালো কপি (shallow copy) তৈরি করে। শ্যালো কপি মানে নতুন ArrayList তৈরি হয় কিন্তু এর এলিমেন্টগুলো মূল ArrayList-এর সাথে একই অবজেক্ট রেফারেন্স শেয়ার করে (রেফারেন্স টাইপের ক্ষেত্রে)। ভ্যালু টাইপের ক্ষেত্রে মান কপি হয়।

উদাহরণ ১: ArrayList ক্লোন করা

using System;
using System.Collections;

public class Demo {
    public static void Main() {
        ArrayList list = new ArrayList();
        list.Add("One");
        list.Add("Two");
        list.Add("Three");
        list.Add("Four");
        list.Add("Five");
        list.Add("Six");
        list.Add("Seven");
        list.Add("Eight");

        Console.WriteLine("ArrayList এলিমেন্টসমূহ...");
        foreach (string str in list) {
            Console.WriteLine(str);
        }

        Console.WriteLine("ArrayList রিড-অনলি? = " + list.IsReadOnly);
        Console.WriteLine("ArrayList-এ 'Six' আছে কি? = " + list.Contains("Six"));

        list.Insert(4, "Twelve");
        Console.WriteLine("\nArrayList এলিমেন্টসমূহ (আপডেটেড)...");
        foreach (string str in list) {
            Console.WriteLine(str);
        }

        ArrayList list2 = new ArrayList();
        list2 = (ArrayList)list.Clone();

        Console.WriteLine("\nক্লোন করা ArrayList...");
        foreach (string str in list2) {
            Console.WriteLine(str);
        }
    }
}

আউটপুট

ArrayList এলিমেন্টসমূহ...
One
Two
Three
Four
Five
Six
Seven
Eight
ArrayList রিড-অনলি? = False
ArrayList-এ 'Six' আছে কি? = True
ArrayList এলিমেন্টসমূহ (আপডেটেড)...
One
Two
Three
Four
Twelve
Five
Six
Seven
Eight
ক্লোন করা ArrayList...
One
Two
Three
Four
Twelve
Five
Six
Seven
Eight

উদাহরণ ২: ডুপ্লিকেট সহ ArrayList ক্লোন

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");
        list2.Add("G");
        list2.Add("I");

        Console.WriteLine("ArrayList2-এ এলিমেন্টসমূহ...");
        foreach (string res in list2) {
            Console.WriteLine(res);
        }

        Console.WriteLine("ArrayList2-এ এলিমেন্ট সংখ্যা = " + list2.Count);
        list2.Remove("G");
        Console.WriteLine("ArrayList2-এ এলিমেন্টসমূহ (আপডেটেড)...");
        foreach (string res in list2) {
            Console.WriteLine(res);
        }
        Console.WriteLine("ArrayList2-এ এলিমেন্ট সংখ্যা (আপডেটেড) = " + list2.Count);

        ArrayList list3 = new ArrayList();
        list3 = (ArrayList)list2.Clone();

        Console.WriteLine("\nArrayList2 থেকে ক্লোন করা ArrayList...");
        foreach (string str in list3) {
            Console.WriteLine(str);
        }
    }
}

আউটপুট

ArrayList1-এ এলিমেন্টসমূহ...
A
B
C
D
E
F
G
H
I
ArrayList2-এ এলিমেন্টসমূহ...
A
B
C
D
E
F
G
H
I
G
I
ArrayList2-এ এলিমেন্ট সংখ্যা = 11
ArrayList2-এ এলিমেন্টসমূহ (আপডেটেড)...
A
B
C
D
E
F
H
I
G
I
ArrayList2-এ এলিমেন্ট সংখ্যা (আপডেটেড) = 10
ArrayList2 থেকে ক্লোন করা ArrayList...
A
B
C
D
E
F
H
I
G
I

ব্যাখ্যা: Clone() শ্যালো কপি তৈরি করে। স্ট্রিং হলো রেফারেন্স টাইপ কিন্তু ইমিউটেবল, তাই শ্যালো কপি কোনো সমস্যা সৃষ্টি করে না। যদি এলিমেন্টগুলো মিউটেবল অবজেক্ট হত, তবে একটাতে পরিবর্তন অন্যটিতে প্রতিফলিত হত। গভীর কপি (deep copy) এর জন্য ম্যানুয়াল কপি বা সিরিয়ালাইজেশন প্রয়োজন।

  1. পাওয়ারপয়েন্টে টাইমলাইন তৈরি করার পদ্ধতি

  2. আউटलুকতে ইমেইল সিগনেচার তৈরি ও যোগ করার পদ্ধতি

  3. Outlook 캘린더에 공휴일 추가 및 생성하는 방법

  4. এক্সেলে চেকলিস্ট তৈরি ও যোগ করার পদ্ধতি