السلام عليكم ورحمة الله وبركاته
هذا شرح مبسط لـ ArrayList
وكيفية إنشاء كلاس آخر ليتم تجميع مصفوفة أخرى من هذا النوع ArrayList
ونستفيد منها أننا نستخدم ArrayList بدون وجود أخطاء فمثلا
System.Collections.ArrayList myList = new System.Collections.ArrayList ();
myList.Add (22);
myList.Add ("C# Generics");
myList.Add (22.45);ثم قمنا بإستخدام الكود التالي
int item =0;
//This will cause an InvalidCastException
foreach (int x in myList)
{
Item = item+x;
}سوف ينتج خطأ لوجود نص حرفي في القيم المخزنة في myList
ولذلك
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
namespace ArrayListSample
{
#region Person Class
class Person
{
String Name;
Int32 Age;
String Address;
#region Constructor
public Person() { }
public Person(String Name, Int32 Age, String Address)
{
Name = Name;
Age = Age;
Address = Address;
}
public Person(String Name, Int32 Age)
{
Name = Name;
Age = Age;
Address = String.Empty;
}
public Person(String Name, String Address)
{
Name = Name;
Age = 0;
Address = Address;
}
public Person(String Name)
{
Name = Name;
Age = 0;
Address = String.Empty;
}
#endregion
}
#endregion
#region PeopleCollection Class
class PeopleCollection : System.Collections.IEnumerable
{
private ArrayList arPeople = new ArrayList();
public PeopleCollection()
{
}
#region Methods
public void AddPeople(Person p)
{
arPeople.Add(p);
}
public void ClearPeople()
{
arPeople.Clear();
}
int Count;
public int PeopleCount
{
get { return Count; }
}
#endregion
#region IEnumerable Members
public System.Collections.IEnumerator GetEnumerator()
{
return arPeople.GetEnumerator();
}
#endregion
}
#endregion
class Client
{
public static void Main()
{
PeopleCollection myPeople = new PeopleCollection();
myPeople.AddPeople(new Person("Saurabh",24,"Gurgaon"));
myPeople.AddPeople(new Person("Manu"));
foreach (Person Person in myPeople)
{
Console.WriteLine(Person);
}
Console.ReadLine();
}
}
}وفي الكود السابق تم إنشاء كلاس بإسم Person ، وهو مخصص لحفظ بيانات الشخص ووضعها في متغيرات لحفظها
ثم تم إنشاء كلاس آخر بإسم PeopleCollection وهي ترث من الإنترفيس (Interface) System.Collections.IEnumerable
ونستفيد من ذلك أننا يمكننا تجميع وتخزين بيانات أي عدد من الأشخاص وحفظهم في ArrayList
ونستخدم هذه الطريقة في أننا نحافظ على عدم وجود أي خطأ في حفظ البيانات وعدم وجود أي خطأ غير متوقع
مثال
myPeople.AddPeople(new Car());
السطر السابق سوف يعطي خطأ أثناء البرمجة لأننا حصرنا النوع المستخدم Person ، مع تحديد أنواع البيانات المدخلة من أرقام أو أحرف
أرجوا أن أكون عرفت أن أوصل المعلومة