Я пытаюсь создать программу для случайного генерации имени из массива торта rota. Кажется, я не могу заставить его работать. В настоящее время в окне сообщения отображается случайное число, а не имя, хранящееся в массиве. Помоги пожалуйста!Произвольно сгенерировать элемент из массива VB
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim strNames(18) As String
Dim frances, emma, piotr, jake, jess, jonah, john, flynn, will, nick As String
strNames(0) = "frances"
strNames(1) = "emma"
strNames(2) = "piotr"
strNames(3) = "jake"
strNames(4) = "jess"
strNames(5) = "jonah"
strNames(6) = "john"
strNames(7) = "flynn"
strNames(8) = "will"
strNames(9) = "nick"
Dim rnum As Integer
Dim temp As String
For i = 0 To 18
strNames(i) = i
Next i
Randomize()
For i = 0 To 9
rnum = Int(Rnd() * (UBound(strNames) - LBound(strNames) + 1) + LBound(strNames))
temp = strNames(i)
strNames(i) = strNames(rnum)
strNames(rnum) = temp
Next i
For i = 0 To 9
MessageBox.Show(strNames(i))
Next i
End Sub
Вы, кажется, не выбирая случайное имя из массива, по всей видимости, шаркая массив, в странном и, вероятно, неправильно (ключ разница в том, что 'rnum' должен зависеть от' i'). См. [Как перетасовать массив в VB?] (Http://stackoverflow.com/q/23576469/11683) или [Перетасовка массива строк в vb.net] (http://stackoverflow.com/q/29358857/11683). – GSerg