هي عبارة عن مصفوفة من العناصر التي من الممكن معرفة قيم العناصر فيها باستخدم الفهرس الخاص بها
طريقة استخدامها
كود :
[color=#000000][COLOR=#0000bb]dim ListName [/color][color=#007700]as new List([/color][color=#0000bb]of T[/color][COLOR=#007700])
[/COLOR][color=#0000bb][/color][/COLOR]
T=Type
حيث أن T يرمز الى نوع البيانات في المصفوفة فمثلا ممكن ان تكون من نوع نصي String
كود :
[color=#000000][COLOR=#0000bb]dim ListName [/color][color=#007700]as new List([/color][color=#0000bb]of String[/color][COLOR=#007700])
[/COLOR][color=#0000bb][/color][/COLOR]
من الممكن أن يحتوي على قيم رقمية Integer
كود :
[color=#000000][COLOR=#0000bb]dim ListName [/color][color=#007700]as new List([/color][color=#0000bb]of Integer[/color][COLOR=#007700])
[/COLOR][color=#0000bb][/color][/COLOR]
ومن الممكن مثلا ان يرمز الى كائن Object
عموما
أهم الطرق المستخدمة فيها:
Contains
طبعا واضحة من انها للاستعلام عن وجود عنصر معين
Remove
لازالة عنصر معين بتحديد رقمه ضمن المصفوفة
Insert
لاضافة عنصر ويشترط اضافة مكانه ضمن القائمة
طبعا لدينا الخاصيتين
Capasity and Count
فالاولى
Capasity تعني الكمية التي يستوعبها المصفوفة وهي تبدا من صفر عند بداية انشاء المصفوفة وتزداد بازدياد عدد العناصر
فمثلا قمت باضافة عنصرين للمصفوفة فوجدت انها زادت من صفر الى 4
طبعا عند الانتهاء من كتابة جميع العناصر يمكن التخلص المن الكمية المستوعبة الزائدة عن عدد العناصر باستخدام الدالة
TrimExcess
مثلا
ListName.TrimExcess
طبعا الخاصية الثانية معروفة
Count التي تقوم بارجاع عدد العناصر
سنقوم الان بوضع مثال كامل يوضح جميع ما تم شرحه
افتح الفيجوال ستوديو وقم بانشاء مشروع جديد من نوع
Console Application
وقم بلصق الكود التالي
سأقوم بشرح كل سطر على حدة
كود :
[COLOR=#000000][COLOR=#0000bb] Module Module1
Sub Main[/COLOR][COLOR=#007700]()
[/COLOR][color=#0000bb]Dim dinosaurs [/color][color=#007700]As New List([/color][color=#0000bb]Of String[/color][COLOR=#007700])
[/COLOR][COLOR=#dd0000]'قمنا بتعريف مصفوفة جديدة dinosaurs
Console.WriteLine(vbLf & "Capacity: {0}", dinosaurs.Capacity)
'[/COLOR][COLOR=#0000bb]قمنا بالاستعلام عن الخاصية Capasity
dinosaurs[/COLOR][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700]([/color][color=#dd0000]"Tyrannosaurus"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]dinosaurs[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700]([/color][color=#dd0000]"Amargasaurus"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]dinosaurs[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700]([/color][color=#dd0000]"Mamenchisaurus"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]dinosaurs[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700]([/color][color=#dd0000]"Deinonychus"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]dinosaurs[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700]([/color][color=#dd0000]"Compsognathus"[/color][COLOR=#007700])
[/COLOR][COLOR=#dd0000]'قمنا باضافة عناصر الى القائمة
Console.WriteLine()
For Each dinosaur As String In dinosaurs
Console.WriteLine(dinosaur)
Next
'[/COLOR][COLOR=#0000bb]قمنا بالاستعلام عن العناصر
Console[/COLOR][color=#007700].[/color][color=#0000bb]WriteLine[/color][color=#007700]([/color][color=#0000bb]vbLf [/color][color=#007700]& [/color][color=#dd0000]"Capacity: {0}"[/color][color=#007700], [/color][color=#0000bb]dinosaurs[/color][color=#007700].[/color][color=#0000bb]Capacity[/color][COLOR=#007700])
[/COLOR][COLOR=#dd0000]'قمنا بالاستعلام عن الخاصية Capacity
Console.WriteLine("Count: {0}", dinosaurs.Count) '[/COLOR][color=#0000bb]قمنا بالاستعلام عن الخاصية Count Console[/color][color=#007700].[/color][color=#0000bb]WriteLine[/color][color=#007700]([/color][color=#0000bb]vbLf [/color][color=#007700]& [/color][color=#dd0000]"Contains(""Deinonychus""): {0}"[/color][color=#007700], [/color][COLOR=#0000bb]_
dinosaurs[/COLOR][color=#007700].[/color][color=#0000bb]Contains[/color][color=#007700]([/color][color=#dd0000]"Deinonychus"[/color][COLOR=#007700])
[/COLOR][COLOR=#dd0000]'نقوم بالتحقق من وجود عنصر معين وهو هنا Deinonychus
Console.WriteLine(vbLf & "Insert(2, ""Compsognathus"")")
dinosaurs.Insert(2, "Compsognathus")
'[/COLOR][color=#0000bb]نقوم باضافة عنصر جديد للقائمة ولا حظ هنا مكانه ضمن القائمة Compsognathus Console[/color][color=#007700].[/color][color=#0000bb]WriteLine[/color][COLOR=#007700]()
For [/COLOR][color=#0000bb]Each dinosaur [/color][color=#007700]As [/color][COLOR=#0000bb]String In dinosaurs
Console[/COLOR][color=#007700].[/color][color=#0000bb]WriteLine[/color][color=#007700]([/color][color=#0000bb]dinosaur[/color][COLOR=#007700])
[/COLOR][COLOR=#0000bb]Next
[/COLOR][COLOR=#dd0000]'نقوم ايضا هنا بالاستعلام عن العناصر في المصفوفة ولاحظ وجود العنصر الجديد ومكانه
Console.WriteLine(vbLf & "dinosaurs(3): {0}", dinosaurs(3))
'[/COLOR][COLOR=#0000bb]نقوم بالاستعلام عن عنصر معين بحسب موقعه في المصفوفة
Console[/COLOR][color=#007700].[/color][color=#0000bb]WriteLine[/color][color=#007700]([/color][color=#0000bb]vbLf [/color][color=#007700]& [/color][color=#dd0000]"Remove(""Compsognathus"")"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]dinosaurs[/color][color=#007700].[/color][color=#0000bb]Remove[/color][color=#007700]([/color][color=#dd0000]"Compsognathus"[/color][COLOR=#007700])
[/COLOR][COLOR=#dd0000]'قمنا هنا بحذف عنصر من المصفوفة وهو Compsognathus
Console.WriteLine()
For Each dinosaur As String In dinosaurs
Console.WriteLine(dinosaur)
Next
'[/COLOR][COLOR=#0000bb]قمنا هنا بالاستعلام عن جميع عناصر المصفوفة
dinosaurs[/COLOR][color=#007700].[/color][color=#0000bb]TrimExcess[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]Console[/color][color=#007700].[/color][color=#0000bb]WriteLine[/color][color=#007700]([/color][color=#0000bb]vbLf [/color][color=#007700]& [/color][color=#dd0000]"TrimExcess()"[/color][COLOR=#007700])
[/COLOR][COLOR=#dd0000]'هنا نقوم بازالة الCapasity الزائدة عن عدد العناصر
Console.WriteLine("Capacity: {0}", dinosaurs.Capacity)
Console.WriteLine("Count: {0}", dinosaurs.Count)
'[/COLOR][color=#0000bb]قمنا بالاستعلام عن الخاصيتين Capacity [/color][color=#007700]and [/color][COLOR=#0000bb]Count
dinosaurs[/COLOR][color=#007700].[/color][color=#0000bb]Clear[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]Console[/color][color=#007700].[/color][color=#0000bb]WriteLine[/color][color=#007700]([/color][color=#0000bb]vbLf [/color][color=#007700]& [/color][color=#dd0000]"Clear()"[/color][COLOR=#007700])
[/COLOR][COLOR=#dd0000]'قمنا بتفريغ محتوى المصفوفة
Console.WriteLine("Capacity: {0}", dinosaurs.Capacity)
Console.WriteLine("Count: {0}", dinosaurs.Count)
'[/COLOR][color=#0000bb]قمنا بالاستعلام ايضا عن الخاصيتين Capasity [/color][color=#007700]and [/color][COLOR=#0000bb]Count
End Sub
End Module
[/COLOR][/COLOR]
كاتب المشاركة : Mohammed Asaad
بما انك فتحت الموضوع ساضيف من بعد اذنك شيء
كما تفضلت موضوع الList و وموضوع الArray مرتبطان
هنا بعض الدوال تحتاج وسطيات من نوع مصفوفة ولكن عندي قائمة List
هل اقوم بعمل حلقة دوارة تقوم باضافة عنصر عنصر من القائمة الى المصفوفة
لا , بالتأكيد لا تحتاج لذلك مع الطريقة ToArray
كتوضيح :
لديك قائمة تحتوي على عناصر من نوع String
لتقوم بتحويل القائمة الى عناصر بنفس العناصر
كود :
[color=#000000][COLOR=#0000bb]Dim MyString [/color][color=#007700]As New List([/color][color=#0000bb]Of String[/color][COLOR=#007700])
[/COLOR][color=#0000bb]MyString[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700]([/color][color=#dd0000]"Mohammed "[/color][COLOR=#007700])
[/COLOR][color=#0000bb]MyString[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700]([/color][color=#dd0000]"Asaad"[/color][COLOR=#007700])
[/COLOR][color=#0000bb][/color][/COLOR]
لكن هناك كما اسلفت دوال تحتاج وسيطات من نوع مصفوفة
الحل سهل جدا
بكل بساطة
كود :
[color=#000000][COLOR=#0000bb]Dim strArray[/color][color=#007700]() As [/color][color=#0000bb]String [/color][color=#007700]= [/color][color=#0000bb]MyString[/color][color=#007700].[/color][COLOR=#0000bb]ToArray
[/COLOR][/COLOR]