بسم الله الرحمن الرحيم المجموعة System.Collections تعتبر هذه المجموعة بمثابة نواه هذه الإطار حيث تم إستخدام هذه المجموعة كثيرا في بناء بعض المجموعات الأخري ( مثال المجموعة System.Data و مجموعات أخري ) كما سنري لاحقا عند شرح تلك المجموعات تضم هذه المجموعة الفئات الأساسية وهي + Collection Class تتميز هذه الفئة بالتالي : - هي الفئة الأم لكل فئات المجموعة System.Collections - هذه الفئة مشتقة من الفئة Object الموجودة بالمجموعة System - لا يمكننا تخليق كائنات من هذه الفئة لأنها فئة مجردة (Abstract Class) - تحمل هذه الفئة مصفوفة عامة (Public Array) + Stack Class تتميز هذه الفئة بالتالي : - هذه الفئة مشتقة من الفئة Collection - كما نعلم أن فكرة المكدسة (Stack) تعمل من خلال المفهوم ( Last in First out ) LIFO وتعني أن أخر عنصر تم إضافته لمصفوفة المكدسة هو أول عنصر يتم حذفه من المصفوفة أو بإسلوب أخر أننا عندما نقوم بإجراء عملية الحذف أو السحب (Pop) يتم سحب أول عنصر بمصفوفة المكدسة ( وهذا يمكن تخيله من خلال حركة المكدسة من إسفل إلي أعلي ) وتتم عملية الإضافة أو الدفع (Push) من خلال إضافة العنصر في أعلي المكدسة (أي يكون العنصر الأول بالمصفوفة) ( وهذا يمكن تخيله من خلال حركة المكدسة من أعلي إلي إسفل ) ملاحظة : لاحظ أن فكرة الإعادة Redo والتراجع Undo تتم من خلال مفهوم المكدسة + Queue Class تتميز هذه الفئة بالتالي : - هذه الفئة مشتقة من الفئة Collection - كما نعلم أن فكرة الصف (Queue) تعمل من خلال المفهوم ( First in First out ) FIFO وتعني أن أول عنصر تم إضافته لمصفوفة الصف هو أول عنصر يتم حذفه من المصفوفة أو بإسلوب أخر أننا عندما نقوم بإجراء عملية الحذف (Dequeue) يتم سحب أول عنصر بمصفوفة الصف وتتم عملية الإضافة (Enqueue) من خلال إضافة العنصر في أخر الصف (أي يكون العنصر الأخير بالمصفوفة) + ArrayList Class - هذه الفئة مشتقة من الفئة Collection - تتميز بالتعامل مع عناصر المصفوفة من خلال موقع العنصر بالمصفوفة ( أي Index ) + Hashtable Class - هذه الفئة مشتقة من الفئة Collection - تتميز بالتعامل مع عناصر المصفوفة من خلال مفاتيح المصفوفة ( أي Key) ويوضح الشكل التالي تركيب المجموعة System.Collections (لاحظ أن الأعضاء أمثال الدوال والثوابت والمتغيرات التي تحتها خط تعبر عن أعضاء إستاتيكية Static members)
<?include_once "System.php";include_once "System.Collections/Collection.php";include_once "System.Collections/Stack.php";include_once "System.Collections/Queue.php";include_once "System.Collections/ArrayList.php";include_once "System.Collections/Hashtable.php";?>
<script language="php">// إستخدام مكتبة System.Collectionsinclude_once "../bin/System.Collections.php"; // Creates and initializes a new Stack. $myStack = new Stack(); $myStack->Push( "The" ); $myStack->Push( "quick" ); $myStack->Push( "brown" ); $myStack->Push( "fox" ); // Displays the Stack. echo "<pre>" . $myStack->ToString() . "</pre>"; // Removes an element from the Stack. echo "[Pop] : " . $myStack->Pop(); echo "<pre>" . $myStack->ToString() . "</pre>"; // Removes another element from the Stack. echo "[Pop] : " . $myStack->Pop(); echo "<pre>" . $myStack->ToString() . "</pre>"; // Views the first element in the Stack but does not remove it. echo "[Peek] : " . $myStack->Peek(); echo "<pre>" . $myStack->ToString() . "</pre>";</script>