Io farei da SQL che ti restituisca direttamente un numero progressivo.
Ti faccio un esempio su una ipotetica tabella di risultati al tiro a segno:
id_giocatore, nome_giocatore, punti_totali, MediaPartita
ad esempio vuoi una classifica sui punti totali piuttosto che sulla Media a partita.
Allora fai unq query così:
Select row_count() OVER (Order By punti_totali) as rank,
nome_giocatore, Punti_totali, MediaPartita
From risultati
avrai:
1 nino 1200, 44
2 gino 1180, 85
3 franco 1094, 23
4 carlo 945, 70
oppure
Select row_count() OVER (Order By MediaPartita) as rank,
nome_giocatore, Punti_totali, MediaPartita
From risultati
avrai:
1 gino 1180, 85
2 carlo 945, 70
3 nino 1200, 44
4 franco 1094, 23
spero di aver capito la tua esigenza