のうち、ランダマイズリストインデックスの後に(文字列の)リストを繰り返すために、私はので、私はこのコードで立ち往生してきた、これはランダムな名前ジェネレータのあるVB.netどの範囲
のための初心者プログラマです。
Private Function RandomLname(ByRef ranLname As String) As String
Dim reader As StreamReader = My.Computer.FileSystem.OpenTextFileReader("[pathto file.txt]", Encoding.Default)
Dim lines As New List(Of String)
Dim rnd As New Random()
Dim line As Integer
While reader.Peek <> -1
lines.Add(reader.ReadLine())
End While
line = rnd.Next(lines.Count + 1)
'the error shown in this line
ranLname = lines(line)
Return ranLname
reader.Close()
reader.Dispose()
End Function
私はいくつかの実行後に例外ArgumentOutOfRangeException例外を得続ける、誰も私を助けることができますか? 私はlist.countに到達したときにリストを最初から読み直す必要があります。
ご協力いただければ幸いです。
てみ 'ライン= rnd.Next(lines.Count)'。 – Enigmativity
あなたのコードに重大な欠陥があります。あなたが 'Return'ステートメントの後にテキストファイルを閉じている、つまり全く閉じていないという点です。 'Using'ステートメントでそれを開く必要があります。そして、メソッドの終了方法にかかわらず暗黙的に閉じられます。 – jmcilhinney
私はすでにreader.Close()とreader.Dispose()の両方を削除していますが、リストを再作成することはありません。また、リストを削除(+ 1)しても、60以上の結果が返された後に結果が生成されません。 – Hyuichiro