diff --git a/AdventOfCode/Program.cs b/AdventOfCode/Program.cs index 7212f1f..8942ad9 100644 --- a/AdventOfCode/Program.cs +++ b/AdventOfCode/Program.cs @@ -8,7 +8,7 @@ internal class Program static void Main(string[] args) { var runner = new AOCRunner(); - //runner.RenderMenu(); + runner.RenderMenu(); var cc = new CalorieCounting(); cc.LoadInput(); cc.CalculatePart1(); diff --git a/AdventOfCode/Runner/AOCRunner.cs b/AdventOfCode/Runner/AOCRunner.cs index d44fd23..48fbb0c 100644 --- a/AdventOfCode/Runner/AOCRunner.cs +++ b/AdventOfCode/Runner/AOCRunner.cs @@ -24,11 +24,13 @@ public class AOCRunner var info = type.GetCustomAttribute(); if (info == null) continue; - if (_loadedProblems.ContainsKey(info.Year)) - _loadedProblems[info.Year].Add((info, type)); + if (_loadedProblems.TryGetValue(info.Year, out var list)) + list.Add((info, type)); else _loadedProblems.Add(info.Year, new() { (info, type) }); } + foreach (var (year, list) in _loadedProblems) + _loadedProblems[year] = list.OrderBy(l => l.info.Day).ToList(); } public void RenderMenu() @@ -37,16 +39,19 @@ public class AOCRunner Console.WriteLine("Available Problems:"); foreach (var year in years) + RenderYearMenu(year); + } + + private void RenderYearMenu(string year) + { + Console.ForegroundColor = ConsoleColor.Red; + Console.WriteLine($"{year}:"); + Console.ForegroundColor = ConsoleColor.Gray; + var days = _loadedProblems[year]; + for (int i = 0; i < days.Count; i++) { - Console.ForegroundColor = ConsoleColor.Red; - Console.WriteLine($"{year}:"); - Console.ForegroundColor = ConsoleColor.Gray; - var days = _loadedProblems[year]; - for (int i = 0; i < days.Count; i++) - { - var day = days[i]; - Console.WriteLine($"\tDay {day.info.Day} - {day.info.Name}"); - } + var (info, type) = days[i]; + Console.WriteLine($"\tDay {info.Day} - {info.Name}"); } } } \ No newline at end of file