В моем приложении я хочу показать футбольные таблицы из разных лиг, например, английской премьер-лиги и испанского Primera Division.
Я создал объект SeasonTableTeamObject, в котором я сохраняю все значения.(TeamID, очки, голы, пропущенные голы, сыгранные игры, победы, ничьи, поражения)
public class SeasonTableTeamObject
{
public int Points;
public int Goals;
public int AgainstGoals;
public int TeamID;
public string Teamname;
public int PlayedGames;
public int WinGames;
public int DrawGames;
public int LostGames;
public int Rank;
public int GoalDifference => (Goals - AgainstGoals);
public SeasonTableTeamObject(int points, int goals, int againstGoals, int team, string teamName)
{
Points = points;
Goals = goals;
AgainstGoals = againstGoals;
TeamID = team;
Teamname = teamName;
PlayedGames = 0;
WinGames = 0;
DrawGames = 0;
LostGames = 0;
}
}
Затем я создал список с этими объектами SeasonTableTeamObject для каждой лиги.(У каждого клуба в этой лиге есть свой собственный SeasonTableTeamObject)
Теперь самое сложное: у этих лиг разные правила.Я создал переменную внутри класса лиги, чтобы различать наборы правил.
public class League
{
public List<Match> ListOfAlreadyPlayedMatches;
public List<SeasonTableTeamObject> SeasonTableList;
public int Rules;
}
public class Match
{
public int HomeTeamId;
public int AwayTeamId;
public int WinnerTeamId;
}
В Премьер-лиге вы сортируете таблицу следующим образом:
- Очки
- Разница голов
Голы
SeasonTableList.OrderByDescending (p => p.Points) .ThenByDescending (p => p.GoalDifference) .ThenByDescending (p => p.Goals).ToList ();
В испанском Primera Division:
- Очки
- Прямое сравнение (без правила выездных голов)
- Разница мячей
Прямое сравнение означает результат матчей между клубами, набравшими одинаковое количество очков.Например, Реал Мадрид и Барселона имеют по 20 очков.Затем вы должны сравнить матчи между этими двумя клубами.(Для этого я создал WinnderTeamId в Match. Я предполагаю, что в каждой игре должен быть победитель для упрощения).
Вопросы: сортировать список по баллам, целям и т. Д. Не было проблем, но как я могу добиться поведения испанской лиги.(У меня есть список матчей, в которых я могу найти конкретные игры, но я не знаю, как это сделать. Я читал кое-что о IComparable
и IComparer
, но я не знаю, является ли это правильным способомчтобы достичь моих целей ...)