| |
| |
|
تبلیغات | |
جستجو، دایرکتوری وب فارسی، 118، لغت نامه، تقویم، اخبار و ... در جستجوگر ریسمون | |
| | |
توسط :
مجتبی صحرائی
(1387/2/5) | بازدید :
1720
هدف این مقاله آشنایی با کلاس های موجود در فضا نام System.Collection و زیر مجموعه هایش که از آنها به کلاس های مجموعه ای یاد می شود، می باشد. در بخش اول این مقاله به کلاس ArrayList پرداختیم. در بخش دوم این مقاله شما با دو کلاس صف و پشته Queue & Stack آشنا می شوید.
کلاس های مجموعه ای چیستند؟
همانطور که می دانید بهترین راه برای جمع آوری عنصرهایی از یک نوع، آرایه ها
هستند. DotNetFramework کلاس های مختلفی را فراهم کرده که آن ها نیز عنصر ها را به
روش های مخصوصی جمع آوری می کنند. آنها همان کلاس های مجموعه ای هستند و در فضای نام System.Collection و زیر
فضاهای آن قرار دارند.
کلاس های مجموعه ای پایه ، عنصرهایشان را به عنوان شیء ، دریافت کرده ، نگه داشته و
بر می گردانند. بنابراین نوع عنصر یک کلاس مجموعه ای ،object است.
از آنجا که عناصر از نوع object می باشند، می توان مقادیری
از هر نوع را در آن ذخیره نمود.
Queue (صف) :
کلاس Queue یک مکانیسم First-in-First-Out ، (FIFO) را
پیاده سازی می کند، به این صورت که در صف یک عنصر به انتها اضافه شده (enqueue) و
یکی از ابتدای آن حذف می گردد (dequeue).
مثال:
ساخت و اضافه کردن عناصر به queue:
//Create A Queue List And
Fill It
System.Collections.Queue oQueue = new System.Collections.Queue();
for (int i = 5; i < 10; i++)
{
oQueue.Enqueue(i);
} |
خواندن عناصر موجود و نمایش در یک
ListBox:
//Read Queue List And Show
It In ListBox
listBox2.Items.Clear();
foreach (int k in oQueue)
{
listBox2.Items.Add(k.ToString());
} |
اضافه کردن یک عنصر به انتهای لیست:
//Adding A Element To
Queue List
oQueue.Enqueue(10); |
** یادآوری: همانطور که در
بخش اول این مقاله
اشاره شد، عناصر این مجموعه ها از نوع آبجکت هستند، یعنی مقادیری که شما به این
لیست ها اضافه می کنید می توانند از هر نوعی باشند که در اینجا از int استفاده شده
است.
حذف یک عنصر از ابتدای لیست:
//Remove The Element
oQueue.Dequeue(); |
نکته: در 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:
//Create A StackList And
Fill It
System.Collections.Stack oStack = new System.Collections.Stack();
for (int i = 5; i < 10; i++)
{
oStack.Push(i);
} |
خواندن عناصر موجود و نمایش در یک لیست
باکس:
//Read Stack List And Show
It In ListBox
listBox3.Items.Clear();
foreach (object j in oStack)
{
listBox3.Items.Add(j.ToString());
} |
در موارد پیشین در این مرحله لیست به
این حالت بود: 5,6,7,8,9 اما در اینجا (Stack) لیست اینگونه می باشد: 9,8,7,6,5
(اضافه شده به ابتدای لیست)
اضافه کردن یک عنصر به Stack:
//Adding A Element To
StackList
oStack.Push("AspNet"); |
در این حالت لیست به این شکل خواهد بود:
AspNet,9,8,7,6,5
حذف یک عنصر از ابتدای لیست:
//Removing An Element
oStack.Pop(); |
حالا لیست به این شکل است: 9,8,7,6,5
بخش اول این مقاله
همه مقالات
آشنايی با #C
را ببینید.
| |