تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس الثلاثون - ال Collections
#4
ArrayList :

هي قائمة array كما هو واضح من الاسم ، تتميز بنفس سمات ال array من حيث تخزينها لعدة بيانات ، اضافة لمميزات القائمة التي تسهل عمليات الاضافة والتعديل والترتيب والحذف وخلافه داخل عناصر هذه المصفوفة .

لنفترض ان لدينا فئة (سيارة) السابقة والتي تحتوي على اسم السيارة وموديلها ، كنا نعرف مصفوفة منها باستخدام الأمر التالي :
c#:

كود :
[FONT=Tahoma]Car[] carArray = new Car[4];[/FONT]

vb.net:

كود :
Dim carArray As Car() = New Car(3)

ربما لم تكن تعرف انك تحتاج لاربع سيارات فقط ، ربما تحتاج للزيادة او للنقصان ، ربما ترغب بحذف واحدة منهم من المنتصف ... الخ ، فكما ترى لا توفر لنا ال array الكثير من الخيارات لتسهيل التعامل مع هذه الخصائص ، ستحتاج لبعض الأوامر للحذف وخلافه .
بداية قم بعمل using ل System.Collection لتكون قادراً على التعامل المباشر معها لاحقاً .
c#:

كود :
[FONT=Tahoma]using System.Collections;[/FONT]

vb.net:

كود :
[FONT=Tahoma]Imports System.Collections [/FONT]


لكن جاءت array List لتلقي عن كاهلك اي مشاكل بخصوص هذه العمليات ، كل ما عليك هو تعريف arrayList بالطريقة التالية :
C#:

كود :
[FONT=Tahoma]ArrayList carList = new ArrayList();[/FONT]

vb.net:

كود :
[FONT=Tahoma]Dim carList As New ArrayList() [/FONT]

والآن يمكنك اضافة سيارة :
c#:

كود :
Car temp = new Car("BMW", 1990);
carList.Add(temp);

vb.net:

كود :
Dim temp As New Car("BMW", 1990)
carList.Add(temp)

تستطيع ايضاً عمل insert في جزء معين ، لاضافة السيارة مثلاً في المكان الثالث نكتب الكود التالي :
c#:

كود :
[FONT=Tahoma] carList.Insert(temp);[/FONT]

vb.net:

كود :
[FONT=Tahoma] carList.Insert(temp)[/FONT]

في الناحية الأخرى ، تستطيع مسح كامل القائمة :

C#:

كود :
[FONT=Tahoma]carList.Clear();[/FONT]

vb.net:

كود :
[FONT=Tahoma]carList.Clear()[/FONT]

أو حذف عنصر معين بدلالة موقعه :
C#:

كود :
[FONT=Tahoma]carList.RemoveAt(4);[/FONT]

vb.net:

كود :
[FONT=Tahoma]carList.RemoveAt(4)[/FONT]


او بدلالة العنصر نفسه :

C#:

كود :
carList.Remove(temp);

vb.net:

كود :
[FONT=Tahoma]carList.Remove(temp);[/FONT]


يمكننا استخدام الخاصية Count لمعرفة العدد ، وبالتالي الدوران عليهم جميعاً بالشكل التالي مثلاً :
c#:

كود :
for (int i = 0; i < carList.Count; i++)
{
temp = (Car)carList[i];
}

vb.net:

كود :
For i As Integer = 0 To carList.Count - 1
temp = DirectCast(carList(i), Car)
Next


يمكننا استخدام بعض الخصائص الأخرى مثل sort كما تعلمنا سابقاً ، يمكننا تحويلها إلى array عادية باستخدام الدالة toarray ، الدالة Reverse ستعكس ترتيب القائمة ، الدالة indexof تستخدم للبحث بالطريقة التالية ، لنفترض لدينا السيارة temp ونرغب في البحث عنها ضمن السيارات الموجودة ، سيكون ذلك بالشكل التالي :

C#:

كود :
[FONT=Tahoma]int find=carList.IndexOf(temp, 0);[/FONT]

vb.net:

كود :
[FONT=Tahoma]Dim find As Integer = carList.IndexOf(temp, 0) [/FONT]


وهكذا تستطيع استخدام المتغير find للوصول إلى مكان العنصر والتعامل معه كما تريد ، كما يمكنك تحديد نقطة بداية البحث 0 كما حددنا او تغييرها او عدم استخدامها اصلاً ، هناك ايضاً خصائص أخرى ولكن كان هذا عرضاً سريعاً لاهم الخصائص والدوال .

نتابع الدرس القادم مع Hashtable
}}}
تم الشكر بواسطة:


الردود في هذا الموضوع
الدرس الثلاثون - ال Collections - بواسطة Raggi Tech - 14-10-12, 04:03 PM


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم