اینجا میتونی برنامه نویسی ویندوز رو به طور کاملا رایگان یاد بگیری
3 سال پیش / خواندن دقیقه

کلاس ArrayList در سی شارپ

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

ArrayList

کلاس ArrayList یک کالکشن از نوع non-generic در سی شارپ است که می تواند شامل هر نوع داده ای باشد. هنگامی که مقداری را به این کالکشن اضافه می کنیم اندازه آن به صورت خودکار افزایش می یابد و بر خلاف آرایه ها در زمان تعریف نیاز به مشخص کردن اندازه ی آن ندارید. اعلان یک ArrayList  به شکل زیر است :

ArrayList myArryList = new ArrayList();


صفات و متد های مهم ArrayList

  • Capacity : تعداد آیتم هایی که ArrayList می تواند در خود نگه دارد را مشخص میکند.
  • Count : تعداد عناصری که در ArrayList قرار گرفته‌اند را مشخص میکند.
  • ()Add : با استفاده از متد Add می‌توان یک مقدار را به انتهای ArrayList افزود.
  • ()AddRange : با استفاده از متد AddRange می توان مجموعه ای از مقادیر را به ArrayList افزود.
  • ()Insert : با استفاده از متد Insert میتوان یک مقدار را در مکان مشخصی از ArrayList درج کرد.
  • ()InsertRange : با استفاده از متد InsertRange می توان مجموعه ای از عناصر را در یک مکان مشخص به بعد در ArrayList درج کرد.
  • ()RemoveAt : با استفاده از متد Remove می‌توان عنصری خاص را در مکانی مشخص از آرایه حذف کرد.
  • ()Remove : با استفاده از متد Remove میتوان عنصری را از ArrayList حذف کرد.
  • ()RemoveRange : با استفاده از متد RemoveRange میتوان مجموعه ای از عناصر را از ArrayList حذف کرد.
  • ()Sort : با استفاده از متد Sort میتوان  عناصر موجود در جایگزین را مرتب سازی کرد.
  • ()Reverse : با استفاده از متد Reverse میتوان ترتیب قرار گرفتن مقادیر در ArrayList را عکس کرد.
  • ()Contains :  بررسی می کند که عنصر مورد نظر در ArrayList وجود دارد یا نه. در صورتی که وجود داشته باشد مقدار true و در غیر این صورت مقدار false را برمیگرداند.

افزودن عنصر به ArrayList

از متد ()Add برای افزودن یک عنصر و از متد ()AddRange برای افزودن چندین عنصر به یک ArrayList استفاده کنید. در این جا منظور از عنصر ، هر نوع داده ای است که در کالکشن قرار میگیرد. مثالی از افزودن عناصر به یک ArrayList :

ArrayList arryList1 = new ArrayList();
arryList1.Add(1);
arryList1.Add("Two");
arryList1.Add(3);
arryList1.Add(4.5);

ArrayList arryList2 = new ArrayList();
arryList2.Add(100);
arryList2.Add(200);

//adding entire arryList2 into arryList1
arryList1.AddRange(arryList2);



همانطور که در مثال بالا مشاهده می شود می توان عناصر را با انواع مختلف در یک ArrayList اضافه کرد.

در مثال بالا همچنین arrayList۲ با استفاده از متد AddRange به arrayList۱ افزوده شده است.

شما همچنین می توانید در زمان تعریف یک ArrayList مقادیر اولیه را به آن انتساب دهید :

ArrayList arrayList = new ArrayList() { 100, "Two", 12.5, 200 };

دسترسی به عناصر ArrayList

برای دسترسی به عناصر یک ArrayList ، همانند آرایه ها باید از مقادیر index استفاده کرد. با این حال در هنگام واکشی مقادیر باید از تبدیل صریح (casting) برای تبدیل به نوع موردنظر استفاده کنید. یک راه دیگر استفاده از کلمه کلیدی var است.

ArrayList myArryList = new ArrayList();
myArryList.Add(1);
myArryList.Add("Two");
myArryList.Add(3);
myArryList.Add(4.5f);

//Access individual item using indexer
int firstElement = (int) myArryList[0]; //returns 1
string secondElement = (string) myArryList[1]; //returns "Two"
int thirdElement = (int) myArryList[2]; //returns 3
float fourthElement = (float) myArryList[3]; //returns 4.5

//use var keyword
var firstElement = myArryList[0]; //returns 1

از حلقه foreach یا for می‌توان برای پیمایش در طول آرایه ها استفاده نمود :

ArrayList myArryList = new ArrayList();
myArryList.Add(1);
myArryList.Add("Two");
myArryList.Add(3);
myArryList.Add(4.5);

foreach (var val in myArryList)                Console.WriteLine(val);             //Or
for(int i = 0 ; i< myArryList.Count; i++)                Console.WriteLine(myArryList[i]);

خروجی نمونه مثال بالا به شکل زیر است :

1 Two 3 4.5

درج عناصر در یک ArrayList

ArrayList myArryList = new ArrayList();
myArryList.Add(1);
myArryList.Add("Two");
myArryList.Add(3);
myArryList.Add(4.5);
 myArryList.Insert(1, "Second Item");
myArryList.Insert(2, 100);

foreach (var val in myArryList)        Console.WriteLine(val); 

خروجی مثال بالا به شکل زیر خواهد بود :

1 Second Item 100 Two 3
4.5

از متد ()InsertRange برای اضافه کردن مجموعه ای از مقادیر در یک مکان مشخص از ArrayList استفاده کنید :

ArrayList arryList1 = new ArrayList();
arryList1.Add(100);
arryList1.Add(200);

ArrayList arryList2 = new ArrayList();
arryList2.Add(10);
arryList2.Add(20);
arryList2.Add(30);
 arryList2.InsertRange(2, arryList1);

foreach(var item in arryList2)    Console.WriteLine(item);
Output:

خروجی به شکل زیر خواهد بود :

10 20 100 200 30

 

حذف عناصر از ArrayList

از متد جایگزین برای حذف عنصری مشخص از ArrayList استفاده کنید :

ArrayList arryList1 = new ArrayList();
arryList1.Add(100);
arryList1.Add(200);
arryList1.Add(300);
 arryList1.Remove(100); //Removes 1 from ArrayList

foreach (var item in arryList1)    Console.WriteLine(item);

خروجی مثال بالا به شکل زیر است :

200 300

از متد ()RemoveAt برای حذف یک عنصر از یک مکان مشخص از ArrayList استفاده کنید :

ArrayList arryList1 = new ArrayList();
arryList1.Add(100);
arryList1.Add(200);
arryList1.Add(300);
 arryList1.RemoveAt(1); //Removes the first element from an ArrayList

foreach (var item in arryList1)    Console.WriteLine(item);

خروجی نمونه به سال بالا به شکل زیر است :

100 300

از متد ()RemoveRange برای حذف مجموعه ای از عناصر که از مکان index آغاز می‌شوند استفاده کنید :

ArrayList arryList1 = new ArrayList();
arryList1.Add(100);
arryList1.Add(200);
arryList1.Add(300);
 arryList1.RemoveRange(0,2);//Removes two elements starting from 1st item (0 index)

foreach(var item in arryList1)    Console.WriteLine(item);

خروجی مثال بالا به شکل زیر است :

300

مرتب سازی جایگزین

کالکشن ArrayList شامل متد ()Sort و ()Reverse است. با استفاده از تابع Sort می توان عناصر را در ArrayList به شکل صعودی مرتب سازی کرد. با این حال تمام عناصری که در ArrayList قرار دارند باید از یک نوع باشند تا بتوان عملیات مقایسه را روی آنها انجام داد.

با استفاده از متد ()Reverse می توان ترتیب عناصر موجود در آرایه ها را عکس کرد. در این صورت آخرین عنصر در ArrayList در مکان اول قرار می‌گیرد :

ArrayList arryList1 = new ArrayList();
arryList1.Add(300);
arryList1.Add(200);
arryList1.Add(100);
arryList1.Add(500);
arryList1.Add(400);
 Console.WriteLine("Original Order:");

foreach(var item in arryList1)    Console.WriteLine(item);
 arryList1.Reverse();
Console.WriteLine("Reverse Order:");

foreach(var item in arryList1)    Console.WriteLine(item);
 arryList1.Sort();
Console.WriteLine("Ascending Order:");

foreach(var item in arryList1)    Console.WriteLine(item);

خروجی مثال بالا به شکل زیر است :

Original Order: 300 200 100 500 400 Reverse Order: 400 500 100 200 300 Ascending Order: 100 200 300 400 500

بررسی وجود عناصر در ArrayList

با استفاده از متد ()Contains می‌توان بررسی کرد عنصری خاص در ArrayList وجود دارد و یا خیر. این متد در صورتیکه عنصر مورد نظر وجود داشته باشد مقدار true و در غیر این صورت مقدار false را برمیگرداند  :

ArrayList myArryList = new ArrayList();
myArryList.Add(100);
myArryList.Add("Hello World");
myArryList.Add(300);
 Console.WriteLine(myArryList.Contains(100)); 

خروجی نمونه مثال بالا به شکل زیر است :

true


شاید از نوشته‌های زیر خوشتان بیاید
نظر خود را درباره این پست بنویسید ...

منوی سریع