آشنایی با کلاس های مجموعه ای

پنجشنبه 19 اردیبهشت 1392

آشنایی با کلاس های مجموعه ای <br/> همانطور که می دانید بهترین راه برای جمع آوری عنصرهایی از یک نوع، آرایه ها هستند. DotNetFramework کلاس های مختلفی را فراهم کرده که آن ها نیز عنصر ها را به روش های مخصوصی جمع آوری می کنند. آنها همان کلاس های مجموعه ای هستند و در فضای نام System.Collection و زیر فضاهای آن قرار دارند.

کلاس های مجموعه ای چیستند؟
همانطور که می دانید بهترین راه برای جمع آوری عنصرهایی از یک نوع، آرایه ها هستند. DotNetFramework کلاس های مختلفی را فراهم کرده که آن ها نیز عنصر ها را به روش های مخصوصی جمع آوری می کنند. آنها همان کلاس های مجموعه ای هستند و در فضای نام System.Collection و زیر فضاهای آن قرار دارند.
کلاس های مجموعه ای پایه ، عنصرهایشان را به عنوان شیء ، دریافت کرده ، نگه داشته و بر می گردانند. بنابراین نوع عنصر یک کلاس مجموعه ای ،object است.
از آنجا که عناصر از نوع object می باشند، می توان مقادیری از هر نوع را در آن ذخیره نمود.

ArrayList: 
یک کلاس مفید برای مخلوط کردن عنصرها در یک آرایه است. موقعیت های خاصی وجود دارد که یک آرایه معمولی می تواند بسیار محدود کننده باشد:
1- هنگامی که بخواهیم آرایه را تغییر دهیم.(باید یک آرایه جدید ایجاد کنیم و عنصرها را کپی کنیم و در نهایت ارجاعات را به روز کنیم)
2- اگر بخواهیم یک عنصر را از آرایه حذف کنیم، باید آن عنصر را در متغیری ذخیره کنیم و سپس تمامی عناصر بعدی آرایه را یکی به بالا شیفت دهیم.این درست کار نمی کند، زیرا دو کپی از عنصر آخر در انتها برجای می ماند.
3- اگر بخواهیم عنصر جدیدی را در جایی از آرایه قرار دهیم. ابتدا باید برایش جای خالی ایجاد کنیم و...

تمامی این مشکلات با استفاده از ArrayList از بین خواهد رفت.

ویژگی های ArrayList: 
1- می توان با استفاده از متد Remove در ArrayList یک عنصر را حذف نمود،سپس ArrayList عنصرهایش را خود به خود مرتب می کند.
2- می توان توسط متد Add در ArrayList یک عنصر را به انتهای آن اضافه کرد. در این حالت نیز ArrayList عناصرش را مرتب خواهد کرد و در صورت نیاز تغییر اندازه نیز خواهد داد.
3- می توان توسط متد Insert عنصری را در میان عناصر دیگر درج نمود.
یک مثال کوچک رو با هم جلو می بریم. ساخت و اضافه کردن عناصر به یکArrayList

خواندن عناصر و نمایش آن ها در یک ListBox:

حذف یک عنصر بر اساس ایندکس:

بخش دوم مقاله :

کلاس های مجموعه ای چیستند؟
همانطور که می دانید بهترین راه برای جمع آوری عنصرهایی از یک نوع، آرایه ها هستند. DotNetFramework کلاس های مختلفی را فراهم کرده که آن ها نیز عنصر ها را به روش های مخصوصی جمع آوری می کنند. آنها همان کلاس های مجموعه ای هستند و در فضای نام System.Collection و زیر فضاهای آن قرار دارند.
کلاس های مجموعه ای پایه ، عنصرهایشان را به عنوان شیء ، دریافت کرده ، نگه داشته و بر می گردانند. بنابراین نوع عنصر یک کلاس مجموعه ای ،object است.
از آنجا که عناصر از نوع object می باشند، می توان مقادیری از هر نوع را در آن ذخیره نمود.

Queue (صف) :
کلاس Queue یک مکانیسم First-in-First-Out ، (FIFO) را پیاده سازی می کند، به این صورت که در صف یک عنصر به انتها اضافه شده(enqueue) و یکی از ابتدای آن حذف می گردد (dequeue).

مثال: 
ساخت و اضافه کردن عناصر به queue:

خواندن عناصر موجود و نمایش در یک ListBox:

اضافه کردن یک عنصر به انتهای لیست:

** یادآوری: همانطور که در بخش اول این مقاله اشاره شد، عناصر این مجموعه ها از نوع آبجکت هستند، یعنی مقادیری که شما به این لیست ها اضافه می کنید می توانند از هر نوعی باشند که در اینجا از int استفاده شده است.

حذف یک عنصر از ابتدای لیست:

نکته: در QueueList هنگام اضافه کردن ، عنصر به انتهای لیست اضافه می شود ، اما به هنگام حذف ، عنصر از ابتدای لیست حذف می شود.
در این مثال ابتدا لیست به این شکل ساخته می شود: 5,6,7,8,9
بعد از اضافه کردن عنصر 10 لیست به این شکل در خواهد آمد: 5,6,7,8,9,10
و با حذف یک عنصر لیست اینگونه خواهد بود: 6,7,8,9,10
مراحل به همین ترتیب ادامه می یابد.

در StackList سناریو فرق می کند که توضیح داده خواهد شد.

Stack (پشته) :
کلاس Stack یک مکانیسم Last-in-First-Out را پیاده سازی می کند. به این صورت که در یک پشته،عنصر به بالای آن اضافه می شود (عملیات push) و از بالای آن هم حذف می گردد (عملیات pop).

بررسی یک مثال:
 ساخت و اضافه کردن عناصر به Stack:

خواندن عناصر موجود و نمایش در یک لیست باکس:

در موارد پیشین در این مرحله لیست به این حالت بود: 5,6,7,8,9 اما در اینجا (Stack) لیست اینگونه می باشد: 9,8,7,6,5 (اضافه شده به ابتدای لیست)
اضافه کردن یک عنصر به Stack:

در این حالت لیست به این شکل خواهد بود: AspNet,9,8,7,6,5
حذف یک عنصر از ابتدای لیست:

حالا لیست به این شکل است: 9,8,7,6,5

ایمان مدائنی

نویسنده 1299 مقاله در برنامه نویسان
  • C#.net
  • 1k بازدید
  • 0 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

تاکنون هیچ کاربری از این پست تشکر نکرده است

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید