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

نسخة كاملة : Random string
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
لو عندي 2 array واحدة string و الاخري int 

كود :
Dim test = New Integer() {1, 2, 3}
       Dim str = New String() {"Test1", "Test2", "Test3", "Test4"}
و عندي 

كود :
       Dim random = New Random()
على اساس test مثلآ اذا كانت test = 3 يتم اختيار 3 اختيارات من قائمة str مختلفة مثلآ test2 test4 test1

كود :
    Dim str = New String() {"Test1", "Test2", "Test3", "Test4"}
       Dim test = New Integer() {1, 2, 3}

       Dim random = New Random()
       If test(random.Next(1, 3)) = 3 Then
           MsgBox($"{str(random.Next(1, 3))}-{str(random.Next(1, 3))}-{str(random.Next(1, 3))}")
       ElseIf test(random.Next(1, 3)) = 2 Then
           MsgBox($"{str(random.Next(1, 3))}-{str(random.Next(1, 3))}")
       ElseIf test(random.Next(1, 3)) = 1 Then
           MsgBox(str(random.Next(1, 3)))
       End If

مثل هذا يتم تكرار الاختيار مثل Test1-Test3-Test1 هل يوجد حل لي هذا ؟
هذا الكود يحضر عدد عشوائي من المصفوفه
كود :
       ListBox1.Items.Clear()
       Dim str = New String() {"Test1", "Test2", "Test3", "Test4"}
       Dim test = 3
       If test > str.Count Then
           MsgBox("العدد المطلوب أكبر من العناصر الموجوده")
           Exit Sub
       End If
       Dim lst As New List(Of String)
       Dim random = New Random()
       For i = 0 To test - 1
           Do
               Dim a = random.Next(0, str.Count)
               If Not lst.Contains(str(a)) Then
                   lst.Add(str(a))
                   Exit Do
               End If
           Loop
       Next
       ListBox1.Items.AddRange(lst.ToArray)
(09-04-19, 09:18 PM)بدري كتب : [ -> ]هذا الكود يحضر عدد عشوائي من المصفوفه
كود :
       ListBox1.Items.Clear()
       Dim str = New String() {"Test1", "Test2", "Test3", "Test4"}
       Dim test = 3
       If test > str.Count Then
           MsgBox("العدد المطلوب أكبر من العناصر الموجوده")
           Exit Sub
       End If
       Dim lst As New List(Of String)
       Dim random = New Random()
       For i = 0 To test - 1
           Do
               Dim a = random.Next(0, str.Count)
               If Not lst.Contains(str(a)) Then
                   lst.Add(str(a))
                   Exit Do
               End If
           Loop
       Next
       ListBox1.Items.AddRange(lst.ToArray)

شكرأ اخي