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

نسخة كاملة : حل مشكلة قائمتين ليستا متساويتين بالحجم
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله و بركاته
لماذا الكود التالي لا يعمل
كود :
cm.Parameters.AddWithValue("@uid", IIf(postsnods.Count = postsposters.Count, uidfromname(postsposters(p).InnerText), 0))
cm.Parameters.AddWithValue("@username", IIf(postsnods.Count = postsposters.Count, postsposters(p).InnerText, 0))
ظل يظهر لي خطأ الاندكس خارج الــ ... مع اني اظن الكود يحل الاشكالية
عملت مثال بسيط لعل المشكلة تتضح
كود :
Public Class Form1
   Dim lst1 As New List(Of String) From {"1", "2", "3", "4"}
   Dim lst2 As New List(Of String) From {"1", "2", "3"}
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Dim i As Integer
       For i = 0 To lst1.Count - 1
           Dim itm1 As String = lst1(i)
           Dim itm2 As String = IIf(lst1.Count = lst2.Count, lst2(i), "")
           ListBox1.Items.Add(itm1)
           ListBox2.Items.Add(itm2)
       Next
   End Sub
End Class
انا متاكد اني ناسي شي لكن الى الان لم يتضح لي شي 
لان الكود اللي كتبته بالعادة يعالج الخطأ خصوصا السطر:
كود :
Dim itm2 As String = IIf(lst1.Count = lst2.Count, lst2(i), "")
العد بناء على عدد القائمة الاولى وهي اكثر من الاخرى فالمشكلة حتمية لكن ماهو حلها
تعديل
كود :
Public Class Form1
   Dim lst1 As New List(Of String) From {"1", "2", "3", "4"}
   Dim lst2 As New List(Of String) From {"1", "2", "3"}
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Dim i As Integer
       For i = 0 To lst1.Count - 1
           Dim itm1 As String = lst1(i)
           Dim itm2 As String = ""
           If i < lst2.Count Then itm2  =  lst2(i)
           ListBox1.Items.Add(itm1)
           ListBox2.Items.Add(itm2)
       Next
   End Sub
End Class
(30-10-25, 02:39 AM)Zuhare كتب : [ -> ]تعديل
كود :
Public Class Form1
   Dim lst1 As New List(Of String) From {"1", "2", "3", "4"}
   Dim lst2 As New List(Of String) From {"1", "2", "3"}
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Dim i As Integer
       For i = 0 To lst1.Count - 1
           Dim itm1 As String = lst1(i)
           Dim itm2 As String = ""
           If i < lst2.Count Then itm2  =  lst2(i)
           ListBox1.Items.Add(itm1)
           ListBox2.Items.Add(itm2)
       Next
   End Sub
End Class

شكر الله لك 
لم اجربها بعد لاني هجرتها حالياSmile
لكن الا تعتبر نفس المؤدى؟
(30-10-25, 06:39 AM)justforit كتب : [ -> ]
(30-10-25, 02:39 AM)Zuhare كتب : [ -> ]تعديل
كود :
Public Class Form1
   Dim lst1 As New List(Of String) From {"1", "2", "3", "4"}
   Dim lst2 As New List(Of String) From {"1", "2", "3"}
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Dim i As Integer
       For i = 0 To lst1.Count - 1
           Dim itm1 As String = lst1(i)
           Dim itm2 As String = ""
           If i < lst2.Count Then itm2  =  lst2(i)
           ListBox1.Items.Add(itm1)
           ListBox2.Items.Add(itm2)
       Next
   End Sub
End Class

شكر الله لك 
لم اجربها بعد لاني هجرتها حالياSmile
لكن الا تعتبر نفس المؤدى؟

الكود ممتاز 
بارك الله فيك