List<T> স্ট্রংলি-টাইপড অবজেক্টের কালেকশন যা ইনডেক্স দিয়ে অ্যাক্সেসযোগ্য এবং সোর্টিং, সার্চিং, মডিফাই করার মেথড থাকে। এটি ArrayList-এর জেনেরিক ভার্সন (System.Collections.Generic)।
IList<T>ইমপ্লিমেন্ট করে।- কম্পাইল-টাইম টাইপ চেকিং, বক্সিং/আনবক্সিং নেই (জেনেরিক হলে)।
Add(),AddRange(), কালেকশন ইনিশিয়ালাইজার দিয়ে এলিমেন্ট যোগ করা যায়।- ইনডেক্স দিয়ে অ্যাক্সেস (০-ভিত্তিক)। LINQ, for/foreach দিয়ে ইটারেট করা যায়।
ArrayList- চেয়ে ফাস্টার এবং কম এরর-প্রোন।
মেথড ১: কনস্ট্রাক্টর দিয়ে কপি
class Program
{
public static void Main()
{
List<int> originalList = new List<int>() { 1, 2, 3, 4, 5, 7, 8, 9 };
List<Int32> copy = new List<Int32>(originalList); // কপি কনস্ট্রাক্টর
foreach (var item in copy) System.Console.WriteLine(item);
Console.ReadLine();
}
}
আউটপুট
1 2 3 4 5 7 8 9
মেথড ২: ToList() এক্সটেনশন মেথড (LINQ)
class Program
{
public static void Main()
{
List<int> originalList = new List<int>() { 1, 2, 3, 4, 5, 7, 8, 9 };
List<Int32> copy = originalList.ToList(); // শ্যালো কপি
foreach (var item in copy) System.Console.WriteLine(item);
Console.ReadLine();
}
}
মেথড ৩: GetRange (পার্শিয়াল কপি)
class Program
{
public static void Main()
{
List<int> originalList = new List<int>() { 1, 2, 3, 4, 5, 7, 8, 9 };
List<Int32> copy = originalList.GetRange(0, 3); // ইনডেক্স ০ থেকে ৩টি
foreach (var item in copy) System.Console.WriteLine(item);
Console.ReadLine();
}
}
আউটপুট
1 2 3
নোট: সব মেথড শ্যালো কপি (shallow copy) করে—রেফারেন্স টাইপের জন্য একই অবজেক্ট রেফারেন্স কপি হয়। ডিপ কপির জন্য সিরিয়ালাইজেশন বা ম্যানুয়াল ক্লোনিং লাগবে।