Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Ciao a tutti, questo è il mio primo post. Avrei bisogno di un aiuto con vb.net express 2008. Ho creato un window form per inserire i voti di una gara di karate.
ho dei valori del tipo: nome, voto, voto_max, voto_min, tutti array contenenti i valori degli atleti.
Fino a quando si tratta di ordinare la classifica per voto uso array.sort(voto, nome) ma nel caso di pari merito dovrei ordinare:
1.prima per voto
2.poi per voto_min
nel caso di ulteriore pari merito
3. per voto_max
Non sono riuscito a trovare una soluzione funzionante, anche perchè questo e il mio primo programma.....
credo di aver capito...
tu vuoi riordinare il tuo array voto e nel caso ci sono due voti uguali (tipo 6 e 6) che posizioni per primo quello con voto_min più basso o più alto (a seconda di come ti serve)nel caso ci siano voti uguali e voti_min uguali vada a vedere voto_max e faccia uguale come con voto_min
ti suggerisco di legare tutti i valori di un alteta dentro una classe atleta tramite degli attributi... e di gestire i tuoi risultati come List<Atleta>
con linq puoi dargli tutti gli ordinamenti che vuoi
Ora il problema è: I miei nomi arrivano da delle TextBox. Come faccio ad adattare
Dim Bob = New Atleta("Bob", 35, 25, 45)
e
Dim atleti() As Atleta = {Bob, Joe, Luc, Gennaro}
per inserire i valori della TextBox ?
Grazie.....
scusa se rispondo in ritardo ma ho avuto parecchio da fare
in anzi tutto
Dim atleti() As Atleta = {Bob, Joe, Luc, Gennaro}
crea un array non una lista...
in vb dovrebbe essere
Dim Atleti As New List(Of Atleta)()
Atleti.Add(New Atleta())
Public ReadOnly non ha molto senso...
Per inserire i valori delle textbox è sufficiente che le passi al costruttore quando istanizi un nuovo atleta (New Atleta(textbox1.text,textbox2.text ecc..... ))
E' non del tutto corretto. La parte di query "Select q" è inutile:
Codice sorgente - presumibilmente C# / VB.NET
Dim classifica = From d In atleti _
Order By d.voto, d.VotoMax, d.VotoMin
Puoi mettere Select q alla fine, per completezza, ma non è necessario.
E come dice Gianluca, le proprietà ReadOnly non hanno molto senso in questo caso (con l'unica eccezione del nome, poiché di solito uno non cambia nome...). I voti possono variare, quindi la proprietà dovrebbe avere anche i permessi di scrittura.
Per Gianluca, invece: le query LINQ possono essere eseguite su qualsiasi insieme o collezione enumerabile (ossia che implementi IEnumerable), quindi anche gli array.