Вы можете использовать LINQ, что часто делает код более читабельным:
var firstHalfTables = new FirstHalfTableCollection();
firstHalfTables.PopulateForSeason(SeasonId);
var firstHalfTablesProcessed = (from table in firstHalfTables
orderby table.FirstHalfPoints, table.GD, table.GF
select table).Reverse()
FirstHalfTableRepeater.DataSource = firstHalfTablesProcessed;
Или вы можете заставить свой делегат сравнения возвращать правильную сортировку (вероятно, лучше, чем обычная функция, чем лямбда):
int FirstHalfTableComparison(FirstHalfTable t1, FirstHalfTable t2)
{
int result = t1.FirstHalfPoints.CompareTo(t2.FirstHalfPoints);
if (result == 0)
{
result = t1.GD.CompareTo(t2.GD);
if (result == 0)
result = t1.GF.CompareTo(t2.GF);
}
return result;
}
Вы можете использовать это так:
firstHalfTables.Sort(FirstHalfTableComparison);