随机数而不重复

时间:2014-02-02 09:12:14

标签: asp.net vb.net random

实际上我已经在这里找到了一个工作循环。但问题是我不知道如何正确使用它(noob编码器在这里:D)。我想做的是每次点击都会显示一个随机问题,直到所有20个问题都用完为止。但我的代码重新启动每次点击,我不能让计数器工作。我希望有人可以帮助我:)。

    Dim questions() As String = System.IO.File.ReadAllLines(filename)
    Dim xGenerator As System.Random = New System.Random()
    Dim xTemp As Integer = 0
    Dim xRndNo As New List(Of Integer)
    While Not xRndNo.Count = 20
        xTemp = xGenerator.Next(0, 20)
        If xRndNo.Contains(xTemp) Then
            Continue While
        Else
            xRndNo.Add(xTemp)
            Label1.Text = "question no.:" & xTemp
            Label2.Text = questions(xTemp)
            Label3.text = xRndNo.Count 'a hidden counter 
        End If
    End While
    objStreamReader.Close()

1 个答案:

答案 0 :(得分:1)

我不确定你到底被困在哪里,但这可能会有所帮助。

编写如下代码:

Dim questions() As String = System.IO.File.ReadAllLines(filename)
Dim xGenerator As System.Random = New System.Random()
Dim randomQuestions = _
    questions _
        .OrderBy(Function (x) xGenerator.Next()) _
        .ToArray()

现在您只需要跟踪一个指向randomQuestions的单个计数器,然后更新您的文本字段,并在每次有人回答问题时递增它。