منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : حذف عنصر من مصفوفة
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم
اشتغل على نسخة vb 2010
 هل فيه كود لحذف عنصر معين من مصفوفة ؟
----------
طبعا وجدت بعنض الاكواد الطويلة  بحيث يقوم الكود بالبحث عن عنصر ثم ينش مصفوفة اخرى ينقل اليها العناصر الباقية
ثم يفرغ المصفوفة الاولى و يعيد  نسخها من جديد

هل فيه مثل 

table.remove
السلام عليكم ورحمة الله وبركاته
اخي الكريم بالنسبة لحذف عنصر من المصفوفة  لايمكن بل يمكننا جعل قيمة العنصر فارغة ويبقى مكان العنصر محجوز
ولحذف عنصر نلجأ للحيلة التالية :
نعرف لائحة من عناصر المصفوفة ثم نحذف العنصر المطلوب وبعدها نقوم باسناد قيم اللائحة الى المصفوفة
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       'لدينا المصفوفة التالية
       Dim kk() As String = {"Ali", "Ahmad", "Sami"}

       MsgBox(kk.Length) '  عرض طول المصفوفة قيل الحذف
       ' التحقق من ان المصفوفة ليست لاشيء
       If Not IsNothing(kk) Then
           ' التأكد من ان طول اكبر من الصفر
           If kk.Count > 0 Then
               ' ننشء لائحة بنفس عناصر المصفوفة
               Dim ls As List(Of String) = kk.ToList
               ' نحذف العنصر ذو الاندكس 1
               ls.RemoveAt(1)
               kk = ls.ToArray
               MsgBox(kk.Length) '  عرض طول المصفوفة بعد الحذف
           End If
       End If
       '  عرض عناصر المصفوفة بعد الحذف
       For Each itm As String In kk
           MsgBox(itm)
       Next
   End Sub
(08-07-20, 10:30 PM)ابراهيم ايبو كتب : [ -> ]السلام عليكم ورحمة الله وبركاته
اخي الكريم بالنسبة لحذف عنصر من المصفوفة  لايمكن بل يمكننا جعل قيمة العنصر فارغة ويبقى مكان العنصر محجوز
ولحذف عنصر نلجأ للحيلة التالية :
نعرف لائحة من عناصر المصفوفة ثم نحذف العنصر المطلوب وبعدها نقوم باسناد قيم اللائحة الى المصفوفة
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       'لدينا المصفوفة التالية
       Dim kk() As String = {"Ali", "Ahmad", "Sami"}

       MsgBox(kk.Length) '  عرض طول المصفوفة قيل الحذف
       ' التحقق من ان المصفوفة ليست لاشيء
       If Not IsNothing(kk) Then
           ' التأكد من ان طول اكبر من الصفر
           If kk.Count > 0 Then
               ' ننشء لائحة بنفس عناصر المصفوفة
               Dim ls As List(Of String) = kk.ToList
               ' نحذف العنصر ذو الاندكس 1
               ls.RemoveAt(1)
               kk = ls.ToArray
               MsgBox(kk.Length) '  عرض طول المصفوفة بعد الحذف
           End If
       End If
       '  عرض عناصر المصفوفة بعد الحذف
       For Each itm As String In kk
           MsgBox(itm)
       Next
   End Sub

و الله روعة ...جميل جدا اخي
ربي يحفظكم و يحفظنا جميعا
الحمد لله والشكر لله رب العالمين
ولك اخي الكريم
وجدت كود يشابه ما ذكرت

<System.Array.Clear(ArrayName, i, 1)>
السلام عليكم 
اخي الكريم clear هي تماما مثل ("") ويبقى مكان العنصر محجوزا اي ان طول المصفوفة يبقى على حاله والعنصر الذي افرغناه قيمته فارغة
اما بالطريقة التي ذكرتها لك يتم حذف العنصر تماما
واذا كنت تستخدم الحذف باستمرار وكذلك تغيير طول المصفوفة فالافضل استخدام List اللائحة فهي اكثر ديناميكية في هذا المجال
(08-07-20, 11:42 PM)ابراهيم ايبو كتب : [ -> ]السلام عليكم 
اخي الكريم clear هي تماما مثل ("") ويبقى مكان العنصر محجوزا اي ان طول المصفوفة يبقى على حاله والعنصر الذي افرغناه قيمته فارغة
اما بالطريقة التي ذكرتها لك يتم حذف العنصر تماما
واذا كنت تستخدم الحذف باستمرار وكذلك تغيير طول المصفوفة فالافضل استخدام List اللائحة فهي اكثر ديناميكية في هذا المجال

صحيح هو ما قلت الكود دئما يظهر راسلة الخطا ....
لكن كود حضرتك جد عملي
ان شاء الله ارفع العمل الجاري عليه 

ارجو ان تصبر معنا استاذي