Random, questo sconosciuto!

martedì 27 novembre 2012 - 12.48
Tag Elenco Tags  C#  |  Windows 7  |  Visual Studio Express

max265 Profilo | Newbie

Ciao a tutti,

è il mio primo messaggio qui su dotnethell, ma è già da un pò che vi leggo! Oggi ho deciso di chiedere informazioni direttamente, sperando di non essere né nella sezione sbagliata, né inopportuno a fare certe stupide domande!
Come premessa devo dire che non ho formazione informatica (se escludiamo i 20 anni da autodidatta ), e solo da poco mi sono interessato alla programmazione!
Dopo aver letto un paio di libri sul c (quello "classico"), e avendo visto che approcciarsi da soli alla programmazione da soli è un impresa titanica, ho scelto di cominciare con un linguaggio di alto livello e quindi il c#!

Ora veniamo al mio problema:
Ho una matrice contenente delle stringhe. Creo poi un random e vado a prelevare dalla matrice due valori distinti. Ognuno di questi due estratti (a seconda di qual'è l'estratto) andranno a definire una label e un picturebox.
Posto un pò di codice per farvi capire dove sta il problema:

Random rnd = new Random();
string[] my_strings = new string[40] { "string1", "string2", ecc....};

int stringa_estratta1 = rnd.Next(0,3);
int stringa_estratta2 = rnd.Next(0,3);
while (stringa_estratta2 == stringa_estratta1)
stringa_estratta2 = rnd.Next(0,3);

string estratto1, estratto2;

if (stringa_estratta == 0)
{
estratto1 = my_strings[0];
label.text = bla bla
picturebox = bla bla
}


*********************
Fin qui nessun problema, il codice funziona, se non che dal random escono sempre valori tra 0 e 2, il 3 non viene mai estratto!! Se invece faccio rnd.Next(0,4) mi estrae valori da 0 a 3!!
Ho provato a usare switch al posto dell'if ma il risultato è il medesimo!

Potete aiutarmi a fare luce?

Vinsent Profilo | Senior Member

Ho avuto lo stesso problema, non chiedermi il perchè...sono autodidatta anch' io e sono passato dal basic del C64 al .NET....il range che si passa alla funzione include il primo numero ed esclude l' ultimo...
Leggi la parte "Parametri" e "Valore restituito ":
http://msdn.microsoft.com/it-it/library/2dx6wyd4(v=vs.100).aspx
Ciao

max265 Profilo | Newbie

Si infatti bastava leggere il piccolo pop-up quando si seleziona il " .next "

Sapevo che era una domanda idiota ma la cosa è tutt'altro che intuitiva, e la fretta mi ha incretinito

Grazie dell'aiuto Vinsent!!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5