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

C#-এ List এবং Dictionary-এর পার্থক্য

List<T> এবং Dictionary<TKey, TValue> উভয়েই জেনেরিক কালেকশন ক্লাস, কিন্তু কাঠামো ও ব্যবহারের দৃষ্টিতে তাদের বড় পার্থক্য রয়েছে।

List<T> (অর্ডারড কালেকশন)

  • ইন্ডেক্স ভিত্তিক অ্যাক্সেস (০, ১, ২...)
  • এলিমেন্টগুলোর ক্রম বজায় থাকে
  • ডুপ্লিকেট এলিমেন্ট অনুমোদিত
  • সার্চ: O(n) - লিনিয়ার সার্চ
  • উপযোগী: সিকোয়েনশিয়াল ডেটা, অর্ডার মেইনটেইন করুন
List myList = new List() { "Maths", "English", "Science" };
string first = myList[0]; // ফাস্ট অ্যাক্সেস

Dictionary<TKey, TValue> (কি-ভ্যালু পেয়ার)

  • কি (Key) দিয়ে অ্যাক্সেস (হ্যাশ টেবিল বেসড)
  • কি ইউনিক হতে হবে, ডুপ্লিকেট কি অনুমোদিত নয়
  • ক্রম গ্যারান্টি নেই (OrderedDictionary বাদে)
  • সার্চ/লুকআপ: O(1) - খুব দ্রুত
  • উপযোগী: কি-ভ্যালু ম্যাপিং, ফাস্ট লুকআপ
Dictionary d = new Dictionary();
d.Add("squash", 1);
d.Add("football", 2);
int val = d["football"]; // ফাস্ট লুকআপ

তুলনামূলক টেবিল

ফিচারList<T>Dictionary<TKey,TValue>
অ্যাক্সেসইন্ডেক্স (int)কি (TKey)
সার্চ স্পিডO(n)O(1) গড়ে
ক্রমরক্ষা করা হয়গ্যারান্টি নেই
ডুপ্লিকেটঅনুমোদিতকি ডুপ্লিকেট নয়
মেমরিকমবেশি (হ্যাশ টেবিলের জন্য)

কোনটি বেছে নেবেন? ক্রম এবং সিকোয়েন্স জরুরি হলে List; কি দিয়ে ফাস্ট রিট্রিভ জরুরি হলে Dictionary।

  1. DirectX 11 এবং DirectX 12-এর পার্থক্য কী?

  2. পাইথন টাপল এবং ডিকশনারির পার্থক্য কী?

  3. পাইথন লিস্ট এবং অ্যারে (array) এর পার্থক্য কী?

  4. পাইথন লিস্ট এবং টাপলের পার্থক্য কী?