ArrayList ক্লাসের RemoveRange(int index, int count) মেথড নির্দিষ্ট সূচক থেকে শুরু করে নির্দিষ্ট সংখ্যক উপাদান একসাথে সরিয়ে দেয়। এটি O(n) অপারেশন যেখানে n হলো সরানো উপাদান সংখ্যা + শিফটিং ওভারহেড।
উদাহরণ ১: 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");
Console.WriteLine("\nArrayList2 উপাদানসমূহ...");
foreach (string res in list2) {
Console.WriteLine(res);
}
Console.WriteLine("ArrayList1 == ArrayList2? = " + list1.Equals(list2)); // False (আলাদা অবজেক্ট)
// সূচক ৩ থেকে ২টি উপাদান সরানো (D, E)
list2.RemoveRange(3, 2);
Console.WriteLine("\nরেঞ্জ সরানোর পর ArrayList2 উপাদানসমূহ...");
foreach (string res in list2) {
Console.WriteLine(res);
}
}
}
আউটপুট
ArrayList1 উপাদানসমূহ... A B C D E F G H I ArrayList2 উপাদানসমূহ... A B C D E F G H I ArrayList1 == ArrayList2? = False রেঞ্জ সরানোর পর ArrayList2 উপাদানসমূহ... A B C F G H I
উদাহরণ ২: বড় রেঞ্জ সরানো (প্রায় সব উপাদান)
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("One");
list2.Add("Two");
list2.Add("Three");
list2.Add("Four");
list2.Add("Five");
list2.Add("Six");
list2.Add("Seven");
Console.WriteLine("\nArrayList2 উপাদানসমূহ...");
foreach (string res in list2) Console.WriteLine(res);
// সূচক ১ থেকে ৬টি উপাদান সরানো (Two থেকে Seven)
list2.RemoveRange(1, 6);
Console.WriteLine("\nরেঞ্জ সরানোর পর ArrayList2 উপাদানসমূহ...");
foreach (string res in list2) {
Console.WriteLine(res);
}
}
}
আউটপুট
ArrayList1 উপাদানসমূহ... A B C D E F G H I ArrayList2 উপাদানসমূহ... One Two Three Four Five Six Seven রেঞ্জ সরানোর পর ArrayList2 উপাদানসমূহ... One
RemoveRange() প্যারামিটার ও আচরণ
| প্যারামিটার | বিবরণ |
|---|---|
index | শুরুর সূচক (শূন্য-ভিত্তিক)। ০ থেকে Count-১ পর্যন্ত। |
count | সরানো উপাদান সংখ্যা। ০ বা তার বেশি। |
indexনেগেটিভ বাindex + count > CountহলেArgumentOutOfRangeExceptionনিক্ষেপ করে।count০ হলে কোনো পরিবর্তন হয় না (no-op)।- সরানোর পর বাকি উপাদানগুলোর সূচক আপডেট হয় (শিফট হয়)।
ArrayListনন-জেনেরিক,objectসংরক্ষণ করে (বক্সিং/আনবক্সিং ওভারহেড)।
আধুনিক বিকল্প: List<T>.RemoveRange()
// জেনেরিক List - টাইপ সেফ, ভালো পারফরম্যান্স
List<string> list = new List<string> { "A", "B", "C", "D", "E", "F", "G" };
list.RemoveRange(2, 3); // "C", "D", "E" সরানো
// ফলাফল: A, B, F, G
ArrayList এর অন্যান্য রিমুভ মেথড
Remove(object obj)- প্রথম মিলে যাওয়া উপাদান সরায় (bool রিটার্ন)RemoveAt(int index)- নির্দিষ্ট সূচক 위치한 উপাদান সরায়Clear()- সব উপাদান সরায়
সুপারিশ: নতুন কোডে ArrayList এর পরিবর্তে List<T> ব্যবহার করুন। এটি টাইপ-সেফ, ফাস্ট, এবং বক্সিং ওভারহেড নেই।