Hallo!
Ich bin mir nicht sicher, was Du erreichen willst und der
Code ist naja ...
- explizite Datentyp-Konvertierung verwenden (Option Strict On)
- Integer.tryparse statt Isnumeric nutzen - Double-Werte sind nur
bei Dezimalbruch-Berechnungen sinnvoll
- eine Instanz von System.Random einmal ausserhalb der Funktion erstellen
und dann immer wieder aufrufen
- numberfield ist vermutlich verzichtbar, eine einfache List(of) genügt
(sort-Methode ist verfügbar)
Public Sub Start() Handles btnstart.Click
If (IsNumeric(txtwertebereich.Text)) And (IsNumeric(txtanz.Text)) And ( _
IsNumeric(txtgames.Text)) Then
Dim randomZahl As New System.Random
Dim zList As New SortedList
Dim Zahl As Integer
Dim i As Integer
Dim wBereich As Double = CDbl(Replace(txtwertebereich.Text, ".", _
","))
Dim anZahl As Double = CDbl(Replace(txtanz.Text, ".", ","))
Dim ausg As Integer = 0
Dim secList As New SortedList
Dim sZahl As New System.Random
Dim superZahl As Integer
Dim Games As Double = CDbl(Replace(txtgames.Text, ".", ",")) - 1
Dim gSchleife As Integer
Dim a As String = String.Empty
For gSchleife = 0 To CInt(Games)
If rdbja.Checked Then
superZahl = sZahl.Next(0, 9)
End If
'..............................................
For i = 1 To CInt(anZahl)
Do
Zahl = randomZahl.Next(1, CInt(wBereich) + 1)
If Not zList.ContainsValue(Zahl) Then
zList.Add(Zahl, Zahl)
Exit Do
End If
Loop
Next i
Dim numberField As IList = zList.GetValueList
lstbox.Items.Add("Die Lottozahlen lauten: ")
For i = 0 To numberField.Count - 1
secList.Add(numberField(i), numberField(i))
Next i
a = ""
For Each item As String In secList.Values
a &= item & ", "
Next
a = a.Substring(0, a.Length - 2)
lstbox.Items.Add(a)
If rdbja.Checked Then
superZahl = sZahl.Next(0, 9)
lstbox.Items.Add("SuperZahl= " & superZahl)
End If
secList = New SortedList
zList = New SortedList
Next
End If
End Sub MfG
Manfred
Beitrag wurde zuletzt am 19.08.12 um 23:39:34 editiert. |