List<T> এবং Dictionary<TKey, TValue> উভয়েই জেনেরিক কালেকশন ক্লাস, কিন্তু কাঠামো ও ব্যবহারের দৃষ্টিতে তাদের বড় পার্থক্য রয়েছে।
List<T> (অর্ডারড কালেকশন)
- ইন্ডেক্স ভিত্তিক অ্যাক্সেস (০, ১, ২...)
- এলিমেন্টগুলোর ক্রম বজায় থাকে
- ডুপ্লিকেট এলিমেন্ট অনুমোদিত
- সার্চ: O(n) - লিনিয়ার সার্চ
- উপযোগী: সিকোয়েনশিয়াল ডেটা, অর্ডার মেইনটেইন করুন
ListmyList = new List () { "Maths", "English", "Science" }; string first = myList[0]; // ফাস্ট অ্যাক্সেস
Dictionary<TKey, TValue> (কি-ভ্যালু পেয়ার)
- কি (Key) দিয়ে অ্যাক্সেস (হ্যাশ টেবিল বেসড)
- কি ইউনিক হতে হবে, ডুপ্লিকেট কি অনুমোদিত নয়
- ক্রম গ্যারান্টি নেই (OrderedDictionary বাদে)
- সার্চ/লুকআপ: O(1) - খুব দ্রুত
- উপযোগী: কি-ভ্যালু ম্যাপিং, ফাস্ট লুকআপ
Dictionaryd = 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।