مصفوفات VB.Net: سلسلة ديناميكية مع أمثلة
⚡ ملخص ذكي
تُخزّن مصفوفات VB.Net قيمًا متعددة من نفس نوع البيانات تحت اسم متغير واحد، باستخدام فهرس يبدأ من الصفر. تدعم هذه المصفوفات كلاً من المصفوفات ذات الحجم الثابت والمصفوفات الديناميكية، كما تُحوّل دالتا Split وJoin بين السلاسل النصية والمصفوفات.
ما هي المصفوفة؟
المصفوفة هي بنية بيانات تُستخدم لتخزين عناصر من نفس النوع نوع البياناتيتم ترتيب العناصر بالتسلسل بحيث يكون العنصر الأول في الفهرس 0 والعنصر الأخير في الفهرس n-1، حيث n هو العدد الإجمالي للعناصر في المصفوفة.
كيفية الإعلان عن صفيف وتهيئته
In VB.Net، يتم الإعلان عن المصفوفات باستخدام عبارة Dim. على سبيل المثال:
Dim myData() As Integer
في المثال أعلاه، قمنا بتعريف مصفوفة باسم myData، ويجب أن تحتوي على عناصر من نوع البيانات الصحيح. يوضح المثال التالي كيف يمكننا إعلان مصفوفة لاحتواء عناصر سلسلة:
Dim myData(10) As String
لقد قمنا بتحديد مصفوفة باسم myData لاستيعاب 10 سلاسل.
يمكننا تهيئة المصفوفات في وقت إعلانها. على سبيل المثال:
Dim myData() As Integer = {11, 12, 22, 7, 47, 32}
لقد أعلنا عن المصفوفة myData وأضفنا إليها 6 عناصر صحيحة. ويمكن القيام بذلك أيضًا في حالة السلاسل:
Dim students() As String = {"John", "Alice", "Antony", "Gloria", "jayden"}
لقد أنشأنا مصفوفة باسم الطلاب وأضفنا إليها 5 أسماء.
تنقسم المصفوفات في VB.Net إلى مجموعتين حسب إمكانية تغيير حجمها بعد تعريفها. المجموعة الأولى هي المصفوفات ذات الحجم الثابت.
صفائف ذات حجم ثابت
تحتوي المصفوفة ذات الحجم الثابت على عدد ثابت من العناصر. هذا يعني أنه يجب عليك تحديد عدد العناصر التي ستحتفظ بها أثناء تعريفها. لنفترض أنك بحاجة إلى مصفوفة تحتوي على 3 أسماء طلاب فقط. يمكنك تعريف المصفوفة وتهيئتها كما يلي:
Dim students(0 to 2) As String students(0) = "John" students (1) = "Alice" students (2) = "Antony"
لقد بدأنا بإعلان مصفوفة نصية باسم students. يشير الرقم 0 إلى 2 إلى أن المصفوفة ستخزن عناصر من مؤشرها 0 إلى مؤشرها 2، مما يعني أن لدينا 3 عناصر في المجموع.
لإضافة عناصر إلى المصفوفة، استخدمنا اسم المصفوفة وحددنا الفهرس الذي سيتم تخزين العنصر فيه. على سبيل المثال، سيتم تخزين الاسم John في الفهرس 0 للمصفوفة، مما يعني أنه سيشكل العنصر الأول للمصفوفة. سيكون أنتوني العنصر الأخير في المصفوفة.
عندما لا يكون عدد العناصر معروفًا مسبقًا، يصبح استخدام المصفوفة الديناميكية هو الخيار الأفضل.
المصفوفات الديناميكية
هذه مصفوفة يمكنها استيعاب أي عدد من العناصر. يمكن أن ينمو حجم المصفوفة في أي وقت. هذا يعني أنه يمكنك إضافة عناصر جديدة إلى المصفوفة في أي وقت نريده. لتوضيح ذلك، دعونا أولا نحدد مجموعة من الأعداد الصحيحة:
Dim nums() As Integer
لقد قمنا بتعريف مصفوفة أعداد صحيحة تسمى nums. أنت الآن بحاجة إلى إضافة عنصرين إلى المصفوفة، مع إتاحة المجال لتغيير حجمها. تحتاج إلى استخدام عبارة ReDim كما يلي:
ReDim nums(1)
nums(0) = 12
nums(1) = 23
تحتوي مصفوفتنا الآن على عنصرين في الفهرس 0 و1. نحتاج إلى إضافة عنصر ثالث إليها في الفهرس 3 مع الحفاظ على العنصرين الموجودين بالفعل. يمكننا القيام بذلك على النحو التالي:
ReDim Preserve nums(2) nums(2) = 35
يحتوي المصفوفة الآن على ثلاثة عناصر.
بعد ملء المصفوفة، تتمثل المهمة التالية في قراءة القيم التي تحتويها.
استرجاع محتويات المصفوفة
الاسترداد يعني الوصول إلى عناصر المصفوفة. للوصول إلى عنصر المصفوفة، نستخدم الفهرس الخاص به. دعونا نوضح ذلك باستخدام مثال.
الخطوة 1) ابدأ بإنشاء تطبيق وحدة تحكم جديد.
الخطوة الثانية) أضف الكود التالي إلى التطبيق:
Module Module1 Sub Main() Dim students(0 to 2) As String students(0) = "John" students(1) = "Alice" students(2) = "Antony" Console.WriteLine("First student is {0} ", students(0)) Console.WriteLine("Second student is {0} ", students(1)) Console.WriteLine("Third student is {0} ", students(2)) Console.ReadKey() End Sub End Module
الخطوة 3) شغّل الكود بالنقر على زر "ابدأ" من شريط الأدوات. ستظهر لك النافذة التالية:
لقد استخدمنا الكود التالي:
شرح Code:
- إنشاء وحدة تسمى Module1.
- إنشاء الإجراء الفرعي الرئيسي.
- إنشاء مصفوفة باسم الطلاب لتخزين عناصر السلسلة. ستقوم المصفوفة بتخزين العناصر من الفهرس 0 إلى الفهرس 2، مما يعني أنها ستحتوي على إجمالي 3 عناصر.
- إضافة الاسم John باعتباره العنصر الأول في المصفوفة، أي John المخزن في الفهرس 0.
- إضافة اسم Alice باعتباره العنصر الثاني في المصفوفة، أي Alice المخزنة في الفهرس 1.
- إضافة اسم Antony باعتباره العنصر الثالث في المصفوفة، أي Antony المخزن في الفهرس 2.
- طباعة بعض النصوص والعنصر المخزن في الفهرس 0 لمجموعة الطلاب الموجودة على وحدة التحكم. يساعدنا الطلاب (0) في الوصول إلى العنصر الموجود في الفهرس 0 للمصفوفة المسماة الطلاب.
- طباعة بعض النصوص والعنصر المخزن في الفهرس 1 لمجموعة الطلاب الموجودة على وحدة التحكم. يساعدنا الطلاب (1) في الوصول إلى العنصر الموجود في الفهرس 1 للمصفوفة المسماة الطلاب.
- طباعة بعض النصوص والعنصر المخزن في الفهرس 2 لمجموعة الطلاب الموجودة على وحدة التحكم. يساعدنا الطلاب (2) في الوصول إلى العنصر الموجود في الفهرس 2 للمصفوفة المسماة الطلاب.
- إيقاف نافذة وحدة التحكم مؤقتًا في انتظار قيام المستخدم باتخاذ إجراء لإغلاقها.
- نهاية الإجراء الفرعي.
- نهاية الوحدة.
إضافة عناصر جديدة إلى مصفوفة
لن يحدث هذا إلا إذا كان لديك مصفوفة ديناميكية. إذا كنت قد أعلنت مصفوفة ذات أبعاد ثابتة وكانت مليئة بعناصر المصفوفة، فلن تتمكن من إضافة عناصر جديدة إليها. يوضح المثال التالي كيفية إضافة عناصر جديدة إلى مصفوفة ديناميكية:
الخطوة 1) ابدأ بإنشاء تطبيق وحدة تحكم جديد.
الخطوة الثانية) أضف الكود التالي إلى التطبيق:
Module Module1 Sub Main() Dim nums() As Integer ReDim nums(1) nums(0) = 12 nums(1) = 23 For x = 0 To nums.Length - 1 Console.WriteLine("Initial array element: {0}", nums(x)) Next ReDim Preserve nums(2) nums(2) = 35 For x = 0 To nums.Length - 1 Console.WriteLine("Final array element: {0}", nums(x)) Next Console.ReadKey() End Sub End Module
الخطوة 3) انقر على زر "ابدأ" من شريط الأدوات لتشغيل الكود. ستظهر لك النافذة التالية:
لقد استخدمنا الكود التالي:
شرح Code:
- إنشاء وحدة تسمى Module1.
- إنشاء الإجراء الفرعي الرئيسي.
- إنشاء مصفوفة تسمى nums للاحتفاظ بالقيم الصحيحة.
- تحديد أن المصفوفة أعلاه سوف تخزن عنصرين، أي عند الفهرس 0 و1 مع السماح بمساحة لتغيير الحجم.
- إضافة العنصر 12 إلى الفهرس 0 لأرقام المصفوفة.
- إضافة العنصر 23 إلى الفهرس 1 لأرقام المصفوفة.
- استخدام حلقة for لإنشاء متغير x لمساعدتنا في التكرار من العنصر الأول إلى العنصر الأخير في أرقام المصفوفة. لاحظ أن المصفوفة تحتوي الآن على عنصرين، 12 و23.
- طباعة بعض النصوص وعناصر المصفوفة على وحدة التحكم.
- إنهاء حلقة التكرار والقفزping إلى الجزء التالي من الكود.
- قم بتغيير حجم أرقام المصفوفة للسماح بالعناصر الموجودة في الفهارس من 0 إلى 2. وسيكون بمقدورها الآن تخزين 3 عناصر بدلاً من 2. تساعدنا الكلمة الأساسية Preserve في الحفاظ على العناصر الحالية للمصفوفة، أي 12 و23.
- إضافة العنصر 35 إلى الفهرس 2 للمصفوفة. تحتوي المصفوفة الآن على ثلاثة عناصر، 12 و23 و35.
- استخدام حلقة for لإنشاء متغير x لمساعدتنا في التكرار من العنصر الأول إلى العنصر الأخير في أرقام المصفوفة. لاحظ أن المصفوفة تحتوي الآن على ثلاثة عناصر، 12 و23 و35.
- طباعة بعض النصوص وعناصر المصفوفة على وحدة التحكم.
- إنهاء حلقة التكرار والقفزping إلى الجزء التالي من الكود.
- قم بإيقاف نافذة وحدة التحكم مؤقتًا في انتظار أن يتخذ المستخدم إجراءً لإغلاقها.
- نهاية الإجراء الفرعي.
- نهاية الوحدة.
حذف مصفوفة
من المستحسن أن تقوم بمسح المصفوفة الخاصة بك بعد الانتهاء منها، خاصة عندما تتعامل مع مصفوفة ديناميكية. سيساعدك هذا على تحرير بعض مساحة الذاكرة.
لحذف مصفوفة، عليك فقط استدعاء عبارة Erase متبوعة باسم المصفوفة. على سبيل المثال:
Dim nums(1) As Integer nums(0) = 12 nums(1) = 23 Erase nums
لقد أعلنا عن مجموعة من الأعداد الصحيحة تسمى nums وأضفنا عنصرين إليها. سوف تقوم عبارة Erase nums بمسح المصفوفة.
بالإضافة إلى تخزين القيم، توفر لغة VB.Net وظائف مدمجة لتحويل البيانات بين السلاسل النصية والمصفوفات. أول هذه الوظائف هي وظيفة Split.
وظيفة الانقسام
تساعدنا دالة split التي توفرها لغة Visual Basic .NET على تقسيم سلسلة نصية إلى أجزاء وتخزينها في مصفوفة. يوضح المثال التالي كيفية استخدام هذه الدالة:
الخطوة 1) إنشاء تطبيق وحدة تحكم جديد.
الخطوة الثانية) أضف الكود التالي إلى التطبيق:
Module Module1 Sub Main() Dim myarray() As String Dim guru99 As String Dim x As Integer guru99 = "Welcome, to, Guru99" myarray = Split(guru99, ", ") For x = LBound(myarray) To UBound(myarray) Console.WriteLine(myarray(x)) Next Console.ReadKey() End Sub End Module
الخطوة 3) شغّل الكود بالنقر على زر "ابدأ" من شريط الأدوات. ستظهر لك النافذة التالية:
لقد استخدمنا الكود التالي:
شرح Code:
- إنشاء وحدة تسمى Module1.
- بدء الإجراء الفرعي الرئيسي.
- إنشاء مصفوفة باسم myarray للاحتفاظ بقيم السلسلة.
- إنشاء متغير سلسلة اسمه guru99.
- إنشاء متغير عدد صحيح يسمى x.
- تعيين سلسلة إلى المتغير guru99.
- تقسيم السلسلة أعلاه إلى أجزاء ووضعها في المصفوفة المسماة myarray. "،" (الفاصلة) هي الفاصلة، وبالتالي فإن وظيفة الانقسام ستستخدمها لتحديد نهاية الأجزاء المختلفة من السلسلة.
- استخدام المتغير x للتكرار عبر المصفوفة المسماة myarray. يحدد LBound وUBound الحدود الدنيا والحدود العليا للمصفوفة، على التوالي.
- طباعة قيم المصفوفة المسماة myarray على وحدة التحكم.
- إنهاء حلقة التكرار.
وظيفة الانضمام
تساعدنا وظيفة الانضمام على ضم عدة مصفوفات إلى سلسلة واحدة. يوضح المثال التالي ذلك:
الخطوة 1) ابدأ بإنشاء تطبيق وحدة تحكم جديد.
الخطوة الثانية) أضف الكود التالي إلى التطبيق:
Module Module1 Sub Main() Dim students(0 To 2) As String students(0) = "John" students(1) = "Alice" students(2) = "Antony" Dim classmates As String classmates = Join(students, ", ") Console.WriteLine(classmates) Console.ReadKey() End Sub End Module
الخطوة 3) قم بتشغيل الكود بالنقر فوق زر "ابدأ" الموجود في شريط الأدوات:
لقد استخدمنا الكود التالي:
شرح Code:
- إنشاء وحدة تسمى Module1.
- إنشاء الإجراء الفرعي الرئيسي.
- إنشاء مصفوفة باسم الطلاب تحتوي على 3 قيم سلسلة.
- إضافة اسم جون إلى الفهرس 0 للمصفوفة.
- إضافة اسم أليس إلى الفهرس 1 للمصفوفة.
- إضافة اسم أنتوني إلى الفهرس 2 للمصفوفة.
- تحديد متغير اسمه زملاء الدراسة من نوع بيانات السلسلة.
- يتم ضم جميع عناصر مصفوفة الطلاب وفصلها باستخدام الفاصلة (,). سيتم إسناد نتيجة هذه العملية إلى المتغير زملاء الدراسة.
- طباعة محتويات متغير زملاء الدراسة على وحدة التحكم.
- إيقاف نافذة وحدة التحكم مؤقتًا في انتظار قيام المستخدم باتخاذ إجراء لإغلاقها.
- إنهاء الإجراء الفرعي الرئيسي.
- إنهاء الوحدة النمطية.








