22 messaggi dal 23 gennaio 2007
Salve a tutti... mi vergogno un po a chiedervi se esiste una funzione random (Ambiente Asp.net) che permetta di randomizzare un intervallo di numeri scelti dall'utente.. ESEMPIO Val_Restituito=R.next(1,2,5,7,8,41)

Perché ogni volta devo togliere dal contenitore dei numeri disponibili il numero appena estratto! Altrimenti se il contenitore dovesse contenere 20 numeri di cui 19 già estratti... per beccare il 20esimo sto 1 anno ad aspettare :'''((
637 messaggi dal 12 agosto 2005
Per generare un numero casuale esiste Random:
System.Random rnd = new System.Random();
int val = rnd.Next(minValue,maxValue);


Nel tuo caso potresti ad esempio usare una lista di interi (List<int>) ed estrarre un indice compreso tra 0 e (list.Length - 1). Quindi rimuovi il suddetto numero:

System.Collections.Generics.List<int> list = System.Collections.Generics.List<int>();

//Aggiungo el.
//...

System.Random rnd = new System.Random();

while(condizione)
{
int indice = rnd.Next(0,list.Length-1);

FaiQualcosa(list[indice]);

list.RemoveAt(indice);
}


Occhio, è una bozza e non l'ho provata.

Hope this helps.
22 messaggi dal 23 gennaio 2007
Ironizzavo sul non conoscere il random ... è ovvio che lo conosco... solo che non avevo pensato a come creare l'inetervallo ''personalizzato'' solo questo!

Grazie per il listato!! Hai avuto un'idea geniale !!! L'ho convertito nel mio linguaggio (VB.net) è perfettamente funzionante tranne che per una cosa. Lenght non esiste, esiste COUNT.

Ecco la trascrizione funzionante:

Dim Indice As Integer
Dim List As New System.Collections.Generic.List(Of Integer)
Dim r As New Random
'Aggiungo 10 elkementi integer qualsiasi
List.Add(11)
List.Add(12)
List.Add(13)
List.Add(14)
List.Add(15)
List.Add(16)
List.Add(17)
List.Add(18)
List.Add(19)
List.Add(20)

While List.Count <> 0
Indice = r.Next(0, List.Count - 1)
Response.Write(List(Indice) & vbCrLf)
List.RemoveAt(Indice)
End While

Grazie ancora !
Buon week-end
22 messaggi dal 23 gennaio 2007
Anzi.. mi spiego meglio... avevo pensato alle matrici ma... venendo da VB6 la situazione mi si presentava un po piu complicata per asp.net... avrei dovuto usare un redim Mat() (che non so se esiste ancora) con una dichiarazione a matrice indeterminata all'inizio del listato ..ed in piu per mantenere i dati all'interno della stessa dopo una rimozione avrei dovuto cercare l'equivalente della funzione PRESERVE.. insomma un macello del cavolo...

Bella la classe List... funziona come un controllo listItem di VB6 con la differenza che non è grafico !! Ideale per asp.net.. penso di usarlo parecchio! Grazie grazie ancora...
637 messaggi dal 12 agosto 2005
criptus ha scritto:

Grazie per il listato!! Hai avuto un'idea geniale !!! L'ho convertito nel mio linguaggio (VB.net) è perfettamente funzionante tranne che per una cosa. Lenght non esiste, esiste COUNT.


In effetti hai ragione, mi confondo spesso tra Count e Length, visto che esistono entrambi ma in contesti differenti (Array, Collection, etc...).

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.