تفاوت کلیدی – مجموعه عمومی و غیرعمومی در C
یک مجموعه عمومی کلاسی است که ایمنی نوع را بدون نیاز به مشتق از نوع مجموعه پایه و پیاده سازی اعضای خاص نوع فراهم می کند. یک مجموعه غیر عمومی یک کلاس تخصصی برای ذخیره سازی و بازیابی داده است که از پشته ها، صف ها، لیست ها و هشتبل ها پشتیبانی می کند. تفاوت اصلی بین مجموعه عمومی و غیرعمومی در سی شارپ این است که یک مجموعه عمومی به شدت تایپ می شود در حالی که یک مجموعه غیرعمومی به شدت تایپ نمی شود.
مجموعه عمومی در سی شارپ چیست؟
مجموعههای غیر عمومی مانند ArrayList، Queue، Stack و غیره.می تواند عناصری از انواع داده های مختلف را ذخیره کند. هنگام به دست آوردن موارد، برنامه نویس باید آنها را به نوع داده صحیح تایپ کند. در غیر این صورت، می تواند یک استثنا در زمان اجرا ایجاد کند. برای غلبه بر این مشکل می توان از کلاس های مجموعه عمومی استفاده کرد. مجموعه های عمومی عناصر را به صورت داخلی در آرایه هایی از انواع واقعی خود ذخیره می کنند. بنابراین، ریخته گری نوع مورد نیاز نیست. آنها می توانند برای ذخیره عناصر از نوع یا انواع مشخص شده استفاده شوند. برخی از کلاس های مجموعه عمومی عبارتند از List، Dictionary، SortedList، HashSet، Queue، Stack.
لیست عمومی حاوی عناصری از نوع مشخص شده است. این می تواند لیست را بر این اساس هنگام اضافه کردن عناصر افزایش دهد. هنگامی که عبارتی به شرح زیر وجود دارد، تمام عناصری که می توان در لیست 1 ذخیره کرد باید اعداد صحیح باشند،
List list1 – فهرست جدید ();
دیکشنری عمومی در سی شارپ مجموعه ای از کلیدها و مقادیر است. هنگامی که عبارتی به شرح زیر وجود دارد، دیکشنری شی 1 می تواند کلیدهای نوع int و مقادیر نوع رشته را ذخیره کند.
DictionaryDictionary1=دیکشنری جدید ();
یک مجموعه عمومی SortedList جفتهای کلید و مقدار را بهطور پیشفرض به ترتیب صعودی کلید ذخیره میکند. مثال زیر کلید از نوع int و مقدار نوع رشته را ذخیره می کند.
SortedList s0=SortedList جدید ();
اینها چند نمونه برای Generic Collection در C هستند. این مجموعه ها می توانند مقادیر متعددی از انواع داده های مشخص شده را ذخیره کنند. بنابراین، آنها به شدت تایپ شده اند.
Non-Generic Collection در C چیست؟
آرایه ها را می توان برای ذخیره چندین عنصر استفاده کرد. یک اشکال این است که می تواند عناصری از یک نوع داده را ذخیره کند. کلاسهایی در سی شارپ وجود دارد که میتوان از آنها برای ذخیره مقادیر یا اشیاء زیادی به نام مجموعه استفاده کرد. مجموعه ها به ذخیره، به روز رسانی، حذف، جستجو، مرتب سازی اشیا کمک می کنند.اندازه مجموعه را می توان به صورت پویا افزایش یا کاهش داد.
برخی از کلاسهای غیرعمومی مجموعه عبارتند از ArrayList، SortedList، Stack، Queue و HashTable. هر کلاس مجموعه رابط IEnumerable را پیاده سازی می کند. با استفاده از حلقه foreach به تکرار عناصر در مجموعه کمک می کند.
ArrayList جایگزینی برای آرایه است. اگر آرایه ای وجود داشته باشد که بتواند 10 عنصر را ذخیره کند، نمی تواند 20 عنصر را ذخیره کند. اگر آرایه به 10 عنصر مقداردهی اولیه شود اما فقط 5 عنصر را ذخیره می کند، بقیه موارد استفاده نشده است. بنابراین، یک آرایه ثابت است. در یک ArrayList، بسته به شاخص، امکان افزودن یا حذف عناصر وجود دارد. این امکان تخصیص حافظه پویا را فراهم می کند. از روش مرتبسازی میتوان برای مرتبسازی عناصر به ترتیب صعودی استفاده کرد.
HashTable برای نمایش مجموعهای از جفتهای مقادیر کلیدی استفاده میشود. آنها بر اساس هش کد کلید سازماندهی می شوند. بنابراین، هر عنصر دارای یک جفت ارزش کلیدی است. از کلید می توان برای دسترسی به یک عنصر خاص در مجموعه استفاده کرد.پشته نشان دهنده آخرین دسترسی، اولین دسترسی به آیتم ها است. صف برای اولین دسترسی به موارد استفاده می شود. اینها برخی از مجموعه های غیر عمومی هستند که توسط C پشتیبانی می شوند. این مجموعهها میتوانند عناصری از انواع مختلف را ذخیره کنند.
شباهت بین مجموعه عمومی و غیر عمومی در سی شارپ چیست؟
هم مجموعه عمومی و هم غیرعمومی را می توان برای ذخیره چندین عنصر در C استفاده کرد
تفاوت بین مجموعه عمومی و غیرعمومی در سی شارپ چیست؟
Generic vs Non-Generic Collection در C |
|
یک مجموعه عمومی کلاسی است که ایمنی نوع را بدون نیاز به مشتق از نوع مجموعه پایه و پیاده سازی اعضای خاص نوع ارائه می کند. | یک مجموعه غیرعمومی یک کلاس تخصصی برای ذخیره سازی و بازیابی داده است که از پشته ها، صف ها، لیست ها و جداول هش پشتیبانی می کند. |
فضای نام | |
کلاس های مجموعه عمومی در سیستم هستند. مجموعه ها. فضای نام عمومی. | کلاس های Non-generic Collection در سیستم هستند. فضای نام مجموعه ها. |
نوع | |
یک مجموعه عمومی به شدت تایپ شده است. | مجموعه غیرعمومی به شدت تایپ نشده است. |
ذخیرهسازی عناصر | |
مجموعه های عمومی عناصر را به صورت داخلی در آرایه هایی از انواع واقعی خود ذخیره می کنند. | مجموعه های غیرعمومی عناصر را به صورت داخلی در آرایه های شی ذخیره می کند تا بتواند هر نوع داده ای را ذخیره کند. |
خلاصه - مجموعه عمومی در مقابل غیرعمومی در C
این مقاله به تفاوت بین Generic و Non-generic Collection در C پرداخت. تفاوت بین مجموعه عمومی و غیرعمومی این است که مجموعه عمومی به شدت تایپ می شود در حالی که مجموعه غیرعمومی به شدت تایپ نمی شود.