تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
معلومة- dim X as new list(of T)
#1
كاتب الموضوع : Athman

السلام عليكم


طبعا لي فترة وانا اتبع بعض المقالات البرمجية وارى اكواد مثل
dim S as new list(of T)
طبعا بصراحة لم اكن اعيرها اهتمام

ولكن اليوم قررت فجأة ان أقتحم الاعماق و أعرف ماهيتها حتى لا تصبح مبهمة على مرة اخرى

وفكرت انه ربما يكون هناك بعض الاعضاء لايعرفها فقررت ان اكتبها

انا ابصم بالعشرة انه اغلب الاعضاء يعرفها وهو الان مستغرب من اني لا اعرفها وباني وضعتها هنا لكن كما يقولون هي اندفاعة عموما سنرى من خلال الاستفتاء

طبعا المصدر لهذا الموضوع
هو مكتبة
MSDN

نبدا على بركة الله من المشاركة القادمة

واعذروني على اسلوبي في الكتابة

وطبعا اعذروني على الخطا والنقص لان الموضوع جديد بالنسبة لي وارجو مشاركتكم لي

}}}
تم الشكر بواسطة:
#2
هي عبارة عن مصفوفة من العناصر التي من الممكن معرفة قيم العناصر فيها باستخدم الفهرس الخاص بها

طريقة استخدامها
كود :
[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]

}}}
تم الشكر بواسطة:
#3
كاتب المشاركة : 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]

}}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم