PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آشنایی با کلاس های مجموعه ای | بخش اول : ArrayList



Borna66
08-10-2010, 12:53 AM
هدف این مقاله آشنایی با کلاس های موجود در فضا نام System.Collection و زیر مجموعه هایش که از آنها به کلاس های مجموعه ای یاد می شود، می باشد. در بخش اول این مقاله شما با ArrayList آشنا می شوید.


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

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

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

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

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






System.Collections.ArrayList oArrayList = new System.Collections.ArrayList();

//پر کردن ArrayList
for (int i = 0; i < 5; i++)
{
oArrayList.Add(i);
}






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






//خواندن ArrayList و نمایش آن در ListBox
listBox1.Items.Clear();
for (int k = 0; k < oArrayList.Count; k++)
{
listBox1.Items.Add(oArrayList[k].ToString());
}






حذف یک عنصر دلخواه (بر اساس مقدار):






//حذف عنصر اگر Value = 3
oArrayList.Remove(3);





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






//حذف عنصر اگر Index = 3
oArrayList.RemoveAt(2);