سه شنبه ۱۸ دي ۱۴۰۳
Tut24 آموزش برنامه نویسی و مجله تخصصی فناوری ورود/عضویت

آموزش سی شارپ - مجموعه‌ها

کلاس‌های مجموعه‌ها کلاس‌های ویژه‌ای برای ذخیره و بازیابی داده‌ها هستند. این کلاس‌ها پشتیبانی از پشته‌ها (stacks)، صف‌ها (queues)، لیست‌ها و جداول هش (hash tables) را فراهم می‌کنند. بیشتر کلاس‌های مجموعه همان رابط‌ها (interfaces) را پیاده‌سازی می‌کنند.

کلاس‌های مجموعه‌ها اهداف مختلفی دارند، مانند تخصیص حافظه به طور پویا به عناصر و دسترسی به لیستی از آیتم‌ها براساس یک شاخص (index) و غیره. این کلاس‌ها مجموعه‌هایی از اشیاء کلاس شیء (Object) که کلاس پایه برای همه انواع داده در C# است، ایجاد می‌کنند.

کلاس‌های مختلف مجموعه و کاربردهای آن‌ها

در زیر کلاس‌های معمولاً استفاده شده از فضای‌نام System.Collection آمده‌اند. در درس های آتی با هر کدام بیشتر آشنا خواهید شد.

شماره کلاس و توضیحات و کاربرد
1 ArrayList

این کلاس یک مجموعه مرتب از یک شی قابل دسترسی با شاخص است.

در اصل این کلاس جایگزینی برای آرایه است. با این حال، بر خلاف آرایه، شما می‌توانید آیتم‌ها را به لیست اضافه و حذف کنید، با استفاده از یک شاخص و آرایه به طور خودکار اندازه خود را تغییر می‌دهد. همچنین، امکان تخصیص حافظه به طور پویا، اضافه کردن، جستجو و مرتب‌سازی آیتم‌ها در لیست نیز وجود دارد.

2 Hashtable

این کلاس از یک کلید (key) برای دسترسی به عناصر در مجموعه استفاده می‌کند.

جدول هش زمانی استفاده می‌شود که نیاز دارید با استفاده از کلید به عناصر دسترسی پیدا کنید و مقدار کلید مفیدی را مشخص کنید. هر آیتم در جدول هش دارای یک جفت کلید/مقدار است و از کلید برای دسترسی به آیتم‌ها در مجموعه استفاده می‌شود.

3 SortedList

این کلاس از یک کلید و همچنین یک شاخص برای دسترسی به آیتم‌ها در یک لیست استفاده می‌کند.

یک لیست مرتب ترکیبی از آرایه و جدول هش است. این حاوی یک لیست آیتم‌ها است که می‌توان با استفاده از یک کلید یا یک شاخص به آنها دسترسی پیدا کرد. اگر از طریق یک شاخص به آیتم‌ها دسترسی پیدا کنید، آن یک ArrayList است و اگر از طریق کلید به آیتم‌ها دسترسی پیدا کنید، آن یک Hashtable است. مجموعه آیتم‌ها همیشه بر اساس مقدار کلید مرتب شده است.

4 Stack

این کلاس یک مجموعه از اشیاء است که از نظر زمانی آخرین وارد شده، اولین خروجی (last-in, first-out) عمل می‌کند.

زمانی استفاده می‌شود که نیاز دارید به آیتم‌ها با دسترسی آخرین وارد شده، اولین خروجی دسترسی پیدا کنید. زمانی که یک آیتم به لیست اضافه می‌شود، به آن pushing گفته می‌شود و زمانی که آن را حذف می‌کنید، popping آن است.

5 Queue

این کلاس یک مجموعه از اشیاء است که از نظر زمانی اولین وارد شده، اولین خروجی (first-in, first-out) عمل می‌کند.

زمانی استفاده می‌شود که نیاز دارید به آیتم‌ها با دسترسی اولین وارد شده، اولین خروجی دسترسی پیدا کنید. زمانی که یک آیتم به لیست اضافه می‌شود، به آن enqueue گفته می‌شود و زمانی که یک آیتم را حذف می‌کنید، این عمل را deque می‌نامند.

6 BitArray

این کلاس یک آرایه‌ای از نمایش دودویی (binary representation) با استفاده از مقادیر ۱ و ۰ را نمایش می‌دهد.

زمانی استفاده می‌شود که نیاز دارید به ذخیره بیت‌ها، اما تعداد بیت‌ها را پیش از زمان نمی‌دانید. شما می‌توانید با استفاده از یک شاخص صحیح، که از صفر شروع می‌شود، به آیتم‌ها از مجموعه BitArray دسترسی پیدا کنید.