باعرض سلام وعید مبارک
میخواستم بدون فرق این دوتاDictionary با hashtableچیه
هردوتاشون کلید و مقدار میگیرن و با اون کلید مقدار برمیگردونند
در ظاهر خیلی شبیه هم اند چون هر دو شون از ساختار IDictionary استفاده می کنند اما در باطن
یک تفاوت بزرگ دارند، اونم اینه که Dictionary از نوع Generic است اما Hashtable از نوع Generic نیست،
یعنی نوع داده ای که در Dictionary ذخیره میشه از قبل مشخص میشه و تغییر نمی کنه (مثلا <int , string >
در حالی که Hashtable هم Key و هم Value رو بصورت Object ذخیره می کنه که هر چیزی می تونه باشه.
فرضا در Hashtable می توانید همزمان یک Key از نوع string و یک Key از نوع int داشته باشید.
همین مساله باعث میشه که Hashtable برای تبدیل کردن میان Object و نوع داده اصلی مدام در حال
Boxing / Unboxing باشه و در نتیجه کلا Hashtable کند تر از یک Dictionary عمل کنه. به برنامه نویسان
توصیه میشه که اگه نوع داده های Generic رو بکار می برند از Dictionary استفاده کنند که سرعت اش
خیلی بیشتر از Hashtable است.
Hashtable یکسری استفاده های خاص داره و برای همین خیلی کم ازش استفاده میشه، مواردی که
نوع داده Key یا Value مشخص نیست و ممکنه هر آیتمی نوع داده متفاوتی رو بکار ببره.