fork download
  1. using System;
  2. using System.Linq;
  3.  
  4. public class Test
  5. {
  6. public static void Main()
  7. {
  8. var data = new [] {
  9. new { Status = "Confirmed", Hometeam = "Fylkir", Outteam = "Valur", GoalsHometeams = 3, GoalsOutteams = 1 },
  10. new { Status = "Confirmed", Hometeam = "Selfoss", Outteam = "Grindavik", GoalsHometeams = 3, GoalsOutteams = 3 },
  11. new { Status = "Confirmed", Hometeam = "Keflavik", Outteam = "IBV", GoalsHometeams = 1, GoalsOutteams = 0 },
  12. new { Status = "Confirmed", Hometeam = "Stjarnan", Outteam = "IA", GoalsHometeams = 1, GoalsOutteams = 1 },
  13. new { Status = "Open", Hometeam = "Selfoss", Outteam = "Grindavik", GoalsHometeams = 3, GoalsOutteams = 3 },
  14. new { Status = "Confirmed", Hometeam = "Breioablik", Outteam = "Fram", GoalsHometeams = 0, GoalsOutteams = 2 },
  15. new { Status = "Open", Hometeam = "Selfoss", Outteam = "Grindavik", GoalsHometeams = 3, GoalsOutteams = 2 },
  16. new { Status = "Open", Hometeam = "Fylkir", Outteam = "Valur", GoalsHometeams = 3, GoalsOutteams = 1 },
  17. new { Status = "Open", Hometeam = "Selfoss", Outteam = "Grindavik", GoalsHometeams = 3, GoalsOutteams = 1 },
  18. new { Status = "Open", Hometeam = "Keflavik", Outteam = "IBV", GoalsHometeams = 1, GoalsOutteams = 0 },
  19. new { Status = "Open", Hometeam = "Fylkir", Outteam = "Valur", GoalsHometeams = 2, GoalsOutteams = 1 },
  20. new { Status = "Open", Hometeam = "Breioablik", Outteam = "Fram", GoalsHometeams = 0, GoalsOutteams = 2 },
  21. new { Status = "Open", Hometeam = "Selfoss", Outteam = "Grindavik", GoalsHometeams = 2, GoalsOutteams = 1 },
  22. new { Status = "Open", Hometeam = "Stjarnan", Outteam = "IA", GoalsHometeams = 1, GoalsOutteams = 1 },
  23. new { Status = "Open", Hometeam = "Stjarnan", Outteam = "IA", GoalsHometeams = 1, GoalsOutteams = 1 },
  24. new { Status = "Open", Hometeam = "Breioablik", Outteam = "Fram", GoalsHometeams = 0, GoalsOutteams = 2 },
  25. new { Status = "Open", Hometeam = "Keflavik", Outteam = "IBV", GoalsHometeams = 1, GoalsOutteams = 0 },
  26. new { Status = "Open", Hometeam = "Selfoss", Outteam = "Grindavik", GoalsHometeams = 2, GoalsOutteams = 1 },
  27. new { Status = "Open", Hometeam = "Fylkir", Outteam = "Valur", GoalsHometeams = 2, GoalsOutteams = 1 },
  28. new { Status = "Open", Hometeam = "Stjarnan", Outteam = "IA", GoalsHometeams = 1, GoalsOutteams = 0 },
  29. new { Status = "Open", Hometeam = "Fylkir", Outteam = "Valur", GoalsHometeams = 2, GoalsOutteams = 0 },
  30. new { Status = "Open", Hometeam = "Selfoss", Outteam = "Grindavik", GoalsHometeams = 1, GoalsOutteams = 1 },
  31. new { Status = "Open", Hometeam = "Breioablik", Outteam = "Fram", GoalsHometeams = 0, GoalsOutteams = 1 },
  32. new { Status = "Open", Hometeam = "Selfoss", Outteam = "Grindavik", GoalsHometeams = 1, GoalsOutteams = 0 },
  33. new { Status = "Open", Hometeam = "Fylkir", Outteam = "Valur", GoalsHometeams = 1, GoalsOutteams = 0 },
  34. new { Status = "Open", Hometeam = "Keflavik", Outteam = "IBV", GoalsHometeams = 0, GoalsOutteams = 0 },
  35. new { Status = "Open", Hometeam = "Fylkir", Outteam = "Valur", GoalsHometeams = 0, GoalsOutteams = 0 },
  36. new { Status = "Open", Hometeam = "Breioablik", Outteam = "Fram", GoalsHometeams = 0, GoalsOutteams = 0 },
  37. new { Status = "Open", Hometeam = "Selfoss", Outteam = "Grindavik", GoalsHometeams = 0, GoalsOutteams = 0 },
  38. new { Status = "Open", Hometeam = "Stjarnan", Outteam = "IA", GoalsHometeams = 0, GoalsOutteams = 0 },
  39. };
  40.  
  41. var result =
  42. data.GroupBy(d => new { Hometeam = d.Hometeam, Outteam = d.Outteam })
  43. .Select(g => g.OrderBy(d => d.Status)
  44. .ThenByDescending(d => d.GoalsHometeams + d.GoalsOutteams)
  45. .First());
  46. Console.WriteLine("Current game status results:");
  47. foreach (var entry in result)
  48. Console.WriteLine(entry.Status + ", " + entry.Hometeam + ", " + entry.Outteam + ", " + entry.GoalsHometeams + ", " + entry.GoalsOutteams);
  49. }
  50. }
Success #stdin #stdout 0.06s 37384KB
stdin
Standard input is empty
stdout
Current game status results:
Confirmed, Fylkir, Valur, 3, 1
Confirmed, Selfoss, Grindavik, 3, 3
Confirmed, Keflavik, IBV, 1, 0
Confirmed, Stjarnan, IA, 1, 1
Confirmed, Breioablik, Fram, 0, 2