يسم الله الرحمن الرحيم
Namespace System.Collections
Namespace System.Collections
إن فيجوال ستوديو 2005 يتيح إنشاء أنواع عديدة من التطبيقات التالية
-تطبيقات الويندوز Windows Forms
-تطبيقات الدوس Console applications
-تطبيقات الويب Web Forms
ولكن كيف يقوم بتوفير الأدوات اللازمة لإنشاء هذة التطبيقات؟
-يقوم الدوت نت بتوفير عدد كبير جدا من قواعد الفئات Base Class وهى وحدة كود صغيرة تحتوى على وظيفة ما وهى قابلة للتعامل مع لغات الفيجوال ستوديو دوت نت بمعنى أنة يمكنك التعامل معها من خلال الفيجوال بيسيك أو #C أو ++C أو ++J بدون أى تغيير فى مكوناتها
- اسم المجال Namespace
لا يمكن ترجمة Namespace ترجمة حرفية لأنها تعطى معنى بعيد عن ما نتحدث عنة المقصود بهذا المصطلح هو مجموعة من المكونات مرتبة طبقا لمجموعة من الوظائف المدرجة بها وهى كالتالى
1- System.Collections
2-System.Diagnostics
3- System.Data
4- System.IO
5- System.Math
6- System.Reflection
7- System.Security
أولا: System.Collections-تطبيقات الويندوز Windows Forms
-تطبيقات الدوس Console applications
-تطبيقات الويب Web Forms
ولكن كيف يقوم بتوفير الأدوات اللازمة لإنشاء هذة التطبيقات؟
-يقوم الدوت نت بتوفير عدد كبير جدا من قواعد الفئات Base Class وهى وحدة كود صغيرة تحتوى على وظيفة ما وهى قابلة للتعامل مع لغات الفيجوال ستوديو دوت نت بمعنى أنة يمكنك التعامل معها من خلال الفيجوال بيسيك أو #C أو ++C أو ++J بدون أى تغيير فى مكوناتها
- اسم المجال Namespace
لا يمكن ترجمة Namespace ترجمة حرفية لأنها تعطى معنى بعيد عن ما نتحدث عنة المقصود بهذا المصطلح هو مجموعة من المكونات مرتبة طبقا لمجموعة من الوظائف المدرجة بها وهى كالتالى
1- System.Collections
2-System.Diagnostics
3- System.Data
4- System.IO
5- System.Math
6- System.Reflection
7- System.Security
هى مجموعة تحتوى على عدد من الفئات Class وهى تمكنك من عمل عديد من الأشياء مثل حفظ القوائم والتعديل والإضافة والحذف
بعض الأمثلة على Namespace System.Collections
( قائمة المصفوفة ArrayList )
أولا ما هى المصفوفات ؟
.................................................. .................................................. .................................................. .........................
تعريف
هى جمع مصفوفة والمصفوفة هى سلسلة من القيم المتشابة والتى ترتبط معا من خلال عامل مشترك يجمعها
مثال: قطع الشطرنج والجنود داخل الكتيبة وعملاء شركة وتلاميذ فى فصل
وفائدة المصفوفة هو تقليل حجم العمل الذى ينبغى عليك عملة لتخزين عناصر المصفوفة
مثال: عند عمل لعبة شطرنج فإنك تحتاج لعمل 64 متغير لأن الرقعة تحتوى على 64 خانة مختلفة بينما تستطيع وضع 64 خانة هذة داخل مصفوفة واحدة ويتم الإعلان عن المصفوفة باستخدام الأمر Dim
.................................................. .................................................. .................................................. .........................
عودة إلى قوائم المصفوفات
إن قائمة المصفوفةArrayList مشابهة لدرجة كبيرة مع المصفوفات ولكنها تختلف فى أنها قادرة على النمو والإمتداد كما أنة يمكن إضافة مزيد من العناصر إليها وهى مناسبة إذا كان لديك مجموعة بيانات تتغير بصورة مستمرة بالزيادة أو النقصان
التعامل مع قائمة المصفوفة Array List
-خصائص قوائم المصفوفاتProperties of ArryList
Capacity
لقراءة الحجم الحالى لقائمة المصفوفة ArrayList
Count
عدد العناصر الموجود بالفعل داخل قائمة المصفوفة
Item
إيجاد عنصر معين من عناصر قائمة المصفوفة
-ألأوامر الخاصة بقائمة المصفوفة ArrayList
Add
إضافة عنصر أو بند جديد
Clear
مسح أو إزالة كل العناصر
IndexOf
تحديد موقع عنصر محدد داخل قائمة المصفوفة
Insert
إضافة عنصر أو بند جديد فى موقع محدد داخل قائمة المصفوفة
Remove
إزالة عنصر أو بند المطلوب
RemoveAt
إزالة عنصر أو بند فى موقع معين
Sort
ترتيب وفرز
ToArray
نسخ الكل أو جزء ما إلى مصفوفة
TrimToSize
تقليص الحجم الكلى إلى الحجم الفعلى
.................................................. .................................................. .................................................. ................
( المصفوفة المقصوصة أو المقطوعة Bit Array )
وهى خاصة بإدارة قائمة المصفوفة Array List على مستوى البيانات المدمجة داخل المصفوفة وتقوم بالتحكم فى كل عنصر على حدة وبصورة فردية
مثال
رقعة الشطرنج التى تحدثنا عنها يوجد بها 64 خانة نفترض أننا أردنا أن نقوم بالتحكم بالخانة 5C فإن Bit Array تستطيع التحكم فيها من خلال إعطاؤها قيمة تسمى Boolean Value ويكون التحكم فى صورة True أو False
تعريف Boolean Value
وتسمى أحيانا القيمة المنطقية للبيانات وهى تعطى الهدف أحد قيمتين True أو False ويتم التعبير عنها كالتالى
True=1
False=0
.................................................. .................................................. .................................................. ................
(المقارن عديم التدقيق Cas Insensetive Comparer )
ويقوم بالمقارنة بين عنصريين دون التدقيق ومطابقة الاسم أو النص
.................................................. .................................................. .................................................. .................
( Case Insensitive Hash Code Provider )
وهو الذى يقوم بإمداد المقارن عديم التدقيق Cas Insensetive Comparer بالكود الذى يقوم بالمقارنة على أساسة
.................................................. .................................................. .................................................. .................
(Collection Base )
وهو الذى يقوم بتوفير Class Base قواعد الفئات
.................................................. .................................................. .................................................. .................
(Comparer )
المسئول عن عمليات المقارنة بين العناصر وهو Case Sensitive يعنى يتحسس حالة الأحرف
.................................................. .................................................. .................................................. .................
( ReadOnly Collection Base)
المسئول عن جعل بعض قواعد الفئات للقراءة فقط أى غير قابلة للتحرير
.................................................. .................................................. .................................................. .................
( الطابور Queue)
تمكنك من إضافة البيانات بسهولة وكذلك إخراجها بسهولة وتعتمد فى عملها على المبداء First in-First out ما يدخل أولا يخرج أولا ويرمز لها
بالإختصار FIFO فهى تشبة حركة الأشخاص خلال الطابور
خصائصها
Count
عدد البنود الموجودة
الأوامر
Clear
مسح الكل
Dequeue
إخراج أحد العناصر وإعادتة مرة ثانية
Enqueue
إضافة عنصر جديد
Peek
عرض أحد البنود بدون إزالتة
.................................................. .................................................. .................................................. .................
(التكديس Stack )
نفس الطابور Queue ولكنة يختلف فى شىء واحد First in-Last out مايدخل أولا يخرج أخيرا ويرمز لها بالإختصار FILO مثال لو قمت
بوضع مجموعة من الكتب فوق بعضها البعض فإن أول كتاب وضعتة سيكون فى الأسفل واخر كتاب فى الأعلى
خصائصها
Count
عدد البنود الموجودة
الأوامر
Clear
مسح الكل
Pop
إخراج أحد العناصر وإعادتة مرة ثانية
Push
إضافة بند جديد
Peek
عرض أحد البنود بدون إزالتة
.................................................. .................................................. .................................................. .................
(فرز القوائم Sorted List)
نفس إن قائمة المصفوفةArrayList ولكن يتم عمل مفتاح لكل بند لتمكين عملية الفرز وإعادة الترتيب
الخصائص
Capacity
لقراءة الحجم الحالى للقائمة
Count
عدد العناصر الموجود بالفعل داخل القائمة
Item
إيجاد عنصر معين من عناصر القائمة
Keys
قراءة جميع المفاتيح المسجلة داخل القائمة
Values
ترتيب جميع البنود طبقا لترتيب المفاتيح
الأوامر
Add
إضافة عنصر أو بند جديد
Clear
مسح أو إزالة كل العناصر
IndexOfKey
تحديد موقع عنصر محدد داخل القائمة
Remove
إزالة العنصر أوالبند المطلوب
RemoveAt
إزالة عنصر أو بند فى موقع معين
TrimToSize
تقليص الحجم الكلى إلى الحجم الفعلى