Oppure

Loading
15/10/09 6:58
GoLDBeRG
ma perche usare list next cioe vi complicate la vita....
nn era meglio fare una cosa del genere

arraylist pippo
0
1
2
3
4
5
6
7
8
9

dim pippo2 as new arraylist

randomize()

for g as integer=0 to 10
riprova:
dim casuale as integer=math.round(rnd*pippo.count-1)
if pippo2.contains(casuale)=false then
pippo2.add(casuale)
HO IL NUMERO NON ANCORA USCITO
else
goto riprova
end if
next
aaa
15/10/09 12:47
ruggy94
Postato originariamente da swet:
grazie l' ho riadattato e adesso funziona per potresti spiegarmi cosa significa questa linea? Cosa fa ? grazie!
EstrazioneCorrente= ListNumeri(Rnd.Next(0,ListNumeri.Count)) 

Assegna alla variabile EstrazioneCorrente il valore di ListNumeri(N), dove N è un numero casuale da 0 a ListNumeri.Count - 1 (che sarebbe l'indice maggiore della ListNumeri).
aaa
15/10/09 14:19
Il Totem
Perchè continuate ad usare ArrayList? E' una lista a tipizzazione debole, quindi poco performante, usate i Generics piuttosto.

@Goldberd: un ciclo è meno veloce di 10 estrazioni sicure, inoltre i GoTo non sono ben accetti in .NET.
aaa
15/10/09 19:26
GoLDBeRG
@totem: i cicli goto a volte sono indispensabili, funzionano alla perfezione, e gli arraylist sono perfetti anche per contenere intere classi... non mi hanno mai deluso...
aaa
16/10/09 12:32
Il Totem
Postato originariamente da GoLDBeRG:

@totem: i cicli goto a volte sono indispensabili, funzionano alla perfezione, e gli arraylist sono perfetti anche per contenere intere classi... non mi hanno mai deluso...


Che entrambi funzionino nessuno lo mette in dubbio, ma che siano la scelta migliore è un altro discorso. Sarà una mia opinione, ma il "saltare" da una parte all'altra non è buona abitudine: si può fare tutto con i cicli, ed è più rigoroso.
Per gli ArrayList, mi spiace deluderti, ma forse sei rimasto un po' indietro. Dalla versione 2005, VB supporta i tipi Generics, che permettono di creare, tra le altre cose, liste a tipizzazione forte. Tali liste possono comunque contenere qualsiasi tipo di dato, ma ogni loro istanza è dedicata e ottimizzata per la gestione di UN tipo di dato. Ad esempio,
Dim L As New List(Of Int16)

è una lista di interi a 16 bit: ogni elemento è un int16 ed occupa esattamente 16 bits.
Un ArrayList, al contrario, può contenere solo oggetti. Il fatto che non faccia distinzione implica che ogni dato deve essere convertito in un oggetto, quindi in un tipo reference. Se si tratta già di un oggetto, deve subire comunque un cast verso il tipo Object; se si tratta di un tipo value, deve subire il boxing che lo rende reference. Quindi, oltre a sprecare un tot di bytes in più per ogni elemento della lista, impiega anche di più a elaborare e gestire i dati. Se non ci credi, puoi cronometrare qualsiasi cosa con uno Stopwatch, e vedrai che le liste generics sono sempre più performanti degli arraylist (con gli Int32, ad esempio, sono circa 6 volte più veloci, oltre ad occupare meno memoria).
aaa