It's dangerous to code alone! Take this.

Converting Directions to Offsets

The following is one possible solution to this challenge.

using System;

Direction direction = Direction.South;
Console.WriteLine(direction);
Console.WriteLine((BlockOffset)direction);

public enum Direction { North, East, South, West }

public record BlockOffset(int RowOffset, int ColumnOffset)
{
    public static implicit operator BlockOffset(Direction direction)
    {
        return direction switch
        {
            Direction.North => new BlockOffset(-1, 0),
            Direction.South => new BlockOffset(+1, 0),
            Direction.West => new BlockOffset(0, -1),
            Direction.East => new BlockOffset(0, +1)
        };
    }
}

public record BlockCoordinate(int Row, int Column);

// Answer this question: This problem didn't call out whether to make the conversion explicit or implicit.
// Which did you choose and why?
//
//    I chose to make it implicit because there was no data loss. But interestingly, in order to
//    actually use the conversion in my main method, I still explicitly stated the cast to get the
//    conversion to happen.