AdventOfCode.Template
AdventOfCode.Template copied to clipboard
Advent of Code C# (.NET 8) template. Based on AoCHelper (https://github.com/eduherminio/AoCHelper)
AdventOfCode.Template
Advent of Code template based on AoCHelper project.
It allows you to focus on solving AoC puzzles while providing you with some performance stats.
Problem example:
using AoCHelper;
using System.Threading.Tasks;
namespace AdventOfCode
{
public class Day_01 : BaseDay
{
public override ValueTask<string> Solve_1() => new("Solution 1");
public override ValueTask<string> Solve_2() => new("Solution 2");
}
}
Output example:

Basic usage
- Create one class per advent day, following
DayXXorDay_XXnaming convention and implementingAoCHelper.BaseDay. - Place input files under
Inputs/dir, followingXX.txtconvention. - Read the input content from
InputFilePathand solve the puzzle by implementingSolve_1()andSolve_2()!
By default, only your last problem will be solved when running the project. You can change that by behavior by modifying Program.cs.
Invoking different methods:
-
Solver.SolveAll();→ solves all the days. -
Solver.SolveLast();→ solves only the last day. -
Solver.Solve<Day_XX>();→ solves only dayXX. -
Solver.Solve(new uint[] { XX, YY });→ solves only daysXXandYY. -
Solver.Solve(new [] { typeof(Day_XX), typeof(Day_YY) });→ same as above.
Providing a custom SolverConfiguration instance to any of those methods (availabe options described here):
-
Solver.SolveLast(new SolverConfiguration() { ClearConsole = false } );→ solves only the last day providing a custom configuration. -
Solver.SolveAll(new SolverConfiguration() { ShowConstructorElapsedTime = true, ShowTotalElapsedTimePerDay = true, ElapsedTimeFormatSpecifier = "F3" } );→ solves all the days providing a custom configuration.
Advanced usage
Check AoCHelper README file for detailed information about how to override the default file naming and location conventions of your problem classes and input files.