I would do the following:
public struct Estatistica
{
public int Pontos {
get { return Vitorias * 3 + Empates; }
}
public short Vitorias;
public short Empates;
}
public void AtualizarTabela()
{
Dictionary<string, Estatistica> times = new Dictionary<string, Estatistica>();
time["Time 1"] = new Estatistica() { Vitorias = Time1Vitoria, Empates = Time1Empate };
time["Time 2"] = new Estatistica() { Vitorias = Time2Vitoria, Empates = Time2Empate };
time["Time 3"] = new Estatistica() { Vitorias = Time3Vitoria, Empates = Time3Empate };
time["Time 4"] = new Estatistica() { Vitorias = Time4Vitoria, Empates = Time4Empate };
time["Time 5"] = new Estatistica() { Vitorias = Time5Vitoria, Empates = Time5Empate };
time["Time 6"] = new Estatistica() { Vitorias = Time6Vitoria, Empates = Time6Empate };
time["Time 7"] = new Estatistica() { Vitorias = Time7Vitoria, Empates = Time7Empate };
time["Time 8"] = new Estatistica() { Vitorias = Time8Vitoria, Empates = Time8Empate };
}
Sorting Descending:
using System.Linq;
foreach (var time in times.OrderByDescending(t => t.Value.Pontos))
{
// Escreva o que você precisa aqui. O nome do time está em 'time.Key'.
// O resto das informações está em 'time.Value'.
Console.WriteLine(time.Key);
}
See an example here .
If it's Web Forms, you can do the following:
System.Web.UI.WebControls.Label[] labels = new System.Web.UI.WebControls.Label[] {
lblTime1LugarPontos,
lblTime2LugarPontos,
lblTime3LugarPontos,
lblTime4LugarPontos,
lblTime5LugarPontos,
lblTime6LugarPontos,
lblTime7LugarPontos,
lblTime8LugarPontos
};
Windows Forms:
System.Windows.Forms.Label[] labels = new System.Windows.Forms.Label[] {
lblTime1LugarPontos,
lblTime2LugarPontos,
lblTime3LugarPontos,
lblTime4LugarPontos,
lblTime5LugarPontos,
lblTime6LugarPontos,
lblTime7LugarPontos,
lblTime8LugarPontos
};
The loop then looks like this:
foreach (var infoTime in times.OrderByDescending(t => t.Value.Pontos).Select((time, i) => new { Time = time, i = i }))
{
// labels[infoTime.i].Text = infoTime.Time.Key;
labels[infoTime.i].Text = infoTime.Time.Value.Pontos;
}