Вам не нужен потоковый ридер для чтения текстового файла. File.ReadAllLines
вернет массив строк в файле. Вызов .ToList
для этого метода дает вам желаемое List(Of String)
. Мы будем l oop по всей длине списка в течение l oop. Мы вычитаем один, потому что индексы начинаются с нуля.
Чтобы получить случайный индекс, мы вызываем .Next
в нашем экземпляре класса Random
, который был объявлен вне метода (переменная уровня формы). Метод .Next
включает первую переменную и является эксклюзивным. второй. Я использовал переменную для хранения исходного значения lines.Count
, потому что это значение изменится в l oop и будет зависать для l oop, если мы использовали lines.Count -1
непосредственно в To
части For
.
Как только мы получим случайный индекс, мы добавим эту строку в TextBox
и удалим ее из списка.
Private Sub ShuffleNames()
Dim index As Integer
Dim lines = File.ReadAllLines("C:\Users\xxx\Desktop\names.txt").ToList
Dim loopLimit = lines.Count - 1
For i = 0 To loopLimit
index = rnd.Next(0, lines.Count)
TextBox1.AppendText(lines(index).Trim & Environment.NewLine)
lines.RemoveAt(index)
Next
End Sub