Обращение к случайному элементу одномерного массива

adept7771

Приветствую! Как в VB обратиться к случайному элементу одномерного строкового массива из 10 значений?Читал про функцию Randomize, но не получилось ее заюзать. Студио ругается на ошибки.Либо получается надо вводить переменную размером от 1 до 10, генерировать функцией ей случайное значение и уже по этому значению обращаться к массиву? Как правильнее? И какой синтаксис будет верен? Спасибо!
6 ответов

adept7771

adept7771, например так:
   Dim arr() As String = New String() {"Слово1", "Слово2", "Слово3", "Слово4", "Слово5", "Слово6", "Слово7", "Слово8", "Слово9", "Слово10"}
 
    Dim rnd As New Random
    Private Sub Button11_Click_1(sender As Object, e As EventArgs) Handles Button11.Click
        'RichTextBox3.Text = "" 'Если нужно выводить только одно слово
        RichTextBox3.AppendText(arr(rnd.Next(arr.Length)))
        RichTextBox3.AppendText(Environment.NewLine)
    End Sub


adept7771

Я сделал так
Dim X As Single ' указатель фразы
        Randomize()
        X = Int(10 * Rnd())
        Label_Resulttext.Text = arrBase(X)
Подглядел в тырнетах. Только вот что значит Int впереди скобок. Integer? Десятка я так понял методом тыка, это максимальное граничное значение.


adept7771

Только вот что значит Int впереди скобок. Integer?
Да.
Десятка я так понял методом тыка, это максимальное граничное значение.
Да, это верхняя граница диапазона.


adept7771

Большое спасибо за разъяснения!


adept7771

adept7771, не делайте так больше. Этот код устаревший, достался в наследство от VB6 и живёт в библиотеке совместимости. В любой момент он может перестать работать в новой версии.
Dim X As Integer ' указатель фразы
Dim objRandom As New Random
X = objRandom.Next(10)
Label_Resulttext.Text = arrBase(X)
Для генерации случайных чисел есть специальный класс Random.


adept7771

Даже и не знал, что и такое бывает в VB. Спасибо! Запишу в свой блокнотик ваш вариант, как эталонный