축구 순위를 정렬해야합니다. 내 문제는 올바른 순서로 정렬하는 방법입니다.C# 여러 조건으로 목록 정렬
SORTORDER :
- 포인트 DESC
- 근사 일치
- 목표 차이 DESC
- 목표는 DESC 득점
- 목표에 대한
입력 : TeamName - 포인트 - GoalsScored - GoalsAgainst
- 팀 1-1 - 4-7
- 팀 2-5 - 8-6
- 3 팀 - 12-10
- 팀 4 - 8 - 12-5
- 팀 5 - 5 - 7 - 4
... 일치 # 4 - 팀 5 - 팀 2 - 1 ~
일치 # 7 - 테 오전 1시 - 팀 3 - 3-3 ...
출력 : TeamName - 포인트 - GoalsScored - GoalsAgainst
- 팀 4 - 8 - 12-5
- 2 팀 - 5 - 8-6
- 팀 5-5 - 7-4
- 팀 1-1 - 4-7
- 팀 1 - 3 - 2 - 10
팀 2가 팀 5에서 승리했기 때문에 2 위가되었습니다.
팀 1은 팀 3을 비 롯하므로 팀이 4 위를 차지하고 더 나은 목표 차이를 보입니다.
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; }
}
내 표를 가져옵니다. 그리고 2.0/3.0, LINQBridge (당신이 VS2008 이상을 가지고있는 한) –
나는 내 자신의 대답보다이게 낫다고 생각합니다. –
2.0에'List .Sort (비교 )'와 익명의 위임자가 있다면'OrderBy'와'ThenBy'는 여기서 무엇이 개선 될까요? 다중 필드 비교를위한 비교 술어를 작성하는 것은 상당히 간단합니다. –