Frage von aringa12345, 65

C#: Random number->fortlaufende Zahlenfolge 000 bis 999?

Hi :)

in einer vorherigen Frage, wollte ich nen einarmigen Banditen in C# (WF) erstellen. Ich habe meine Idee ein wenig abgewandelt und es so gemacht: wenn auf die Picurebox geklickt wird, wird eine zufällige Zahl generiert. Ich will, dass die Zahlen von 000 - 999 gehen. Allerdings, kann man ja unten sehen, will ich nicht alle Zahlen von 000 bis 999 aufschreiben.

Gibt es da ne Möglichkeit von 000 bis 999, also, dass erkannt wird, dass das fortlaufende Nummern sind? Sonst müsste ich echt alles von 000 bis 999 manuell in eine Codereihe schreiben. Das wäre echt mühsälig.

Der Code funzt ansonsten, habe euch nur die relevante Methode reinkopiert, die anderen sind sowieso leer.

private void pictureBox1_Click(object sender, EventArgs e)
    {
        String[] strLabel =
        {
            "000","001","002","003","004","005","006", //usw. ist halt blöd, so in einer Reihe 
        };
        Random r = new Random();
        int iSelect = r.Next(0, 998);
        label1.Text = strLabel[iSelect];
    }
Antwort
von ogdan, 40

r.Next liefert Dir doch eine Zahl im angegebenen Bereich:

r.Next(0, 999);

liefert eine zufällige Zahl zwischen 0 und 999.

Wenn Du das dreistellig brauchst, mußt Du nur die Formatierung anpassen, das kannst Du mit string.format erreichen.

http://samples.pdmlab.com/stringformatting

Noch einfacher würde es wohl so gehen:

label1.Text= r.Next(0,999).ToString("000");

(habe ich aber nicht ausprobiert)

Kommentar von PWolff ,

Sollte funktionieren.

Allerdings gibt das zweite Argument von Random.Next die kleinste Zahl an, die nicht mehr erreicht wird. Also:

r.Next(0, 1000)
Antwort
von LeonardM, 12

Wenn du tatsächlich unbedingt nen array mit zahlen füllen wills generier dir doch den c# code mit hilfe von c# in ner for schleife und speicher es in einer datei..

Antwort
von tDoni, 35

Ich bin nicht fit in C# aber gibt es da keine toString Methode? Du generierst dir eine zufällige Zahl zwischen 0 und 998 .

int iSelect = r.Next(0, 998);

Wieso kannst du diese nicht in das Label schreiben? (Vorher auf String casten)

Die gesammte Zahlenfolge in ein Array zu hämmern ist wirklich Zeitverschwendung. Das muss auch anders gehen!

Wenn es dir auf die führende Null ankommt, kannst du dir doch eine Hilfsmethode basteln, die als Parameter die Zufallszahl entgegennimmt und dann daraus einen String mit 3 Zeichen bastelt.

Keine passende Antwort gefunden?

Fragen Sie die Community