শব্দার্থকভাবে, একটি Dictionary<int, T>
এবং List<T>
খুব অনুরূপ, উভয়ই .NET ফ্রেমওয়ার্কের এলোমেলো অ্যাক্সেস ধারক। অভিধানের প্রতিস্থাপন হিসাবে একটি তালিকা ব্যবহার করতে, আপনার তালিকার খালি স্লটগুলি উপস্থাপন করার জন্য আপনার টাইপের T
(যেমন null
) একটি বিশেষ মান প্রয়োজন । যদি T
কোনও প্রবণতা মতো পছন্দ না হয় তবে আপনি এর পরিবর্তে int
ব্যবহার করতে পারেন int?
, বা আপনি যদি ইতিবাচক মানগুলি সঞ্চয় করার প্রত্যাশা করেন তবে খালি স্লটগুলি উপস্থাপন করতে আপনি -1 এর মতো একটি বিশেষ মানও ব্যবহার করতে পারেন।
আপনি কোনটি বেছে নেবেন তা মূল মানগুলির সীমার উপর নির্ভর করবে। আপনার চাবি যদিDictionary<int, T>
কোনও পূর্ণসংখ্যার ব্যবধানের মধ্যে থাকে তবে তাদের মধ্যে অনেকগুলি ফাঁক ছাড়াই (উদাহরণস্বরূপ, [0, ... 100] এর মধ্যে 80 টি মান), তবে List<T>
সূচকগুলির মাধ্যমে অ্যাক্সেস দ্রুততর হওয়ার কারণে একটি আরও উপযুক্ত হবে and এই ক্ষেত্রে একটি অভিধানের তুলনায় মেমরি এবং সময় ওভারহেড কম রয়েছে।
যদি আপনার মূল মানগুলি int
[0, ..., 1000000] এর মতো ব্যাপ্তি থেকে 100 টি মান হয়, তবে List<T>
টি এর 1000000 মান ধরে রাখতে একটি মেমরি দরকার, যেখানে আপনার অভিধানের টি এর 100 টি মানের প্রায় ক্রমান্বয়ে একটি মেমরির প্রয়োজন হবে, ইনট এর 100 মান (প্লাস কিছু ওভারহেড, বাস্তবে সেই 100 টি কী এবং মানগুলি সঞ্চয় করার জন্য মেমরির চেয়ে প্রায় 2 গুণ বেশি প্রত্যাশা করে)। সুতরাং পরবর্তী ক্ষেত্রে একটি অভিধান আরও উপযুক্ত হবে।