05/02/10 17:38
albertino
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.....
Grazie a tutti
aaa
05/02/10 20:13
XBarboX
puoi fare un piccolo esempio perchè non si capisce...
aaa
05/02/10 21:13
walker93
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
aaa
06/02/10 7:45
Gianluca87
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
aaa
06/02/10 12:38
albertino
Ok, cerco di chiarire meglio, la classifica dovrebbe essere una cosa del tipo
posizione nome voto voto_min voto_max
1. Pippo 76 35 38
2. Pluto 72 30 Pari merito
3. Tpolino 72 28 Pari merito con voto_min minore
Esattamente come ha detto Walker
Ultima modifica effettuata da albertino 06/02/10 12:39
aaa
07/02/10 16:42
albertino
Ok spero di avere capito il concetto. Il mio codice ora è
Imports System.Linq
Public Class Form1
Dim Bob = New Atleta("Bob", 35, 25, 45)
Dim Joe = New Atleta("Joe", 35, 27, 49)
Dim Luc = New Atleta("Luc", 33, 22, 42)
Dim atleti() As Atleta = {Bob, Joe, Luc}
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim classifica = From d In atleti _
Select d _
Order By d.voto, d.VotoMax, d.VotoMin
For Each d In classifica
MsgBox(d.nome)
Next
End Sub
End Class
Public Class Atleta
Public _Nome As String
Public _Voto As Integer
Public _VotoMax As Integer
Public _VotoMin As Integer
Public Sub New(ByVal nome As String, ByVal voto As Integer, ByVal VotoMax As Integer, ByVal VotoMin As Integer)
_Nome = nome
_Voto = voto
_VotoMax = VotoMax
_VotoMin = VotoMin
End Sub
Public ReadOnly Property Nome() As String
Get
Return _Nome
End Get
End Property
Public ReadOnly Property voto() As Integer
Get
Return _Voto
End Get
End Property
Public ReadOnly Property VotoMax() As Integer
Get
Return _VotoMax
End Get
End Property
Public ReadOnly Property VotoMin() As Integer
Get
Return _VotoMin
End Get
End Property
End Class
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.....
Ultima modifica effettuata da albertino 08/02/10 13:53
aaa