منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
حل مشكلة قائمتين ليستا متساويتين بالحجم - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : حل مشكلة قائمتين ليستا متساويتين بالحجم (/showthread.php?tid=55476)



حل مشكلة قائمتين ليستا متساويتين بالحجم - justforit - 29-10-25

السلام عليكم ورحمة الله و بركاته
لماذا الكود التالي لا يعمل
كود :
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))
ظل يظهر لي خطأ الاندكس خارج الــ ... مع اني اظن الكود يحل الاشكالية



RE: لماذا iif لاتعمل في الكود التال - justforit - 29-10-25

عملت مثال بسيط لعل المشكلة تتضح
كود :
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), "")
العد بناء على عدد القائمة الاولى وهي اكثر من الاخرى فالمشكلة حتمية لكن ماهو حلها



RE: حل مشكلة قائمتين ليستا متساويتين بالحجم - Zuhare - 30-10-25

تعديل
كود :
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



RE: حل مشكلة قائمتين ليستا متساويتين بالحجم - justforit - 30-10-25

(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
لكن الا تعتبر نفس المؤدى؟


RE: حل مشكلة قائمتين ليستا متساويتين بالحجم - justforit - 31-10-25

(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
لكن الا تعتبر نفس المؤدى؟

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