I need to sort some soccer standings. My problem is how to sort in the right order.
Sortorder:
Input: TeamName - Points - GoalsScored - GoalsAgainst
... Match #4 - Team 5 - Team 2 -- 1-2
Match #7 - Team 1 - Team 3 -- 3-3 ...
Output: TeamName - Points - GoalsScored - GoalsAgainst
Because Team 2 won over Team 5 they ends up at 2nd place.
Because Team 1 draw against Team 3, they ends up at 4. place, with a better goal difference.
public class Standing
{
public Team Team { get; set; }
public int? MatchesPlayed { get; set; }
public int? GoalsScored { get; set; }
public int? GoalsAgainst { get; set; }
public int? Points { get; set; }
}
public class Match
{
public int MatchID { get; set; }
public DateTime? PlayTime { get; set; }
public Team HomeTeam { get; set; }
public Team AwayTeam { get; set; }
public int? HomeScore { get; set; }
public int? AwayScore { get; set; }
}
public class Pool
{
public int PoolID { get; set; }
public string PoolName { get; set; }
public DateTime? StartTime { get; set; }
public List<Team> Teams { get; set; }
public List<Match> Matches { get; set; }
public List<Standing> Standings { get; set; }
}
Can you use .NET 3.5? It's pretty straightforward to use the LINQ OrderBy and ThenBy extension methods for this.
I think you should check out the IComparable interface and consider implementing it over your object(s).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With