Данные в List, как csv. Нужно отсортировать - C#
Формулировка задачи:
Всем привет. Сразу прошу прощения за возможный плохой код. Я начинающий.
Вопрос такой. Есть List, в нем есть данные через ";", как в csv:
Обычная футбольная таблица. Команда;Игры;Выигрыши;Ничьи;Поражения;Забитые голы;Пропущенные голы;Разница мячей;Очки
Нужно отсортировать элементы этого List сначала по Очкам, потом по Разнице мячей, потом по Забитым голам, а потом по Выигрышам. По убыванию.
То есть, получается сортировка по нескольким столбцам таблицы, грубо говоря.
Как это сделать?
Заранее благодарю.
Листинг программы
- List<string> table = new List<string>()
- {
- "команда;10;5;2;3;15;3;12;17",
- "команда;10;2;4;4;12;5;7;10",
- "команда;10;3;7;0;10;7;3;16"
- };
Решение задачи: «Данные в List, как csv. Нужно отсортировать»
textual
Листинг программы
- List<string> table = new List<string>()
- {
- "команда;10;5;2;3;15;3;12;17",
- "команда;10;2;4;4;12;5;7;10",
- "команда;10;3;7;0;10;7;3;16"
- };
- var newTable = (from t in table
- let arr = t.Split(';')
- select new {
- Name = arr[0],
- MatchesWon = int.Parse(arr[1]),
- MatchesDrawn = int.Parse(arr[2]),
- MathesLost = int.Parse(arr[3]),
- GoalsFor = int.Parse(arr[4]),
- GoalsAgainst = int.Parse(arr[5]),
- GoalDifference = int.Parse(arr[6]),
- Points = int.Parse(arr[7]),
- } into team
- orderby team.Points descending, team.GoalDifference descending, team.GoalsFor descending, team.MatchesWon descending
- select team
- ).ToArray();
- foreach (var team in newTable)
- {
- Console.WriteLine("{0} has {1} point(s)", team.Name, team.Points);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д