Parser.cs 564 B

1234567891011121314151617181920212223
  1. using System.Text.RegularExpressions;
  2. namespace Day21;
  3. public partial class Parser
  4. {
  5. [GeneratedRegex(@".*")]
  6. private partial Regex LineMatch();
  7. public Map Parse(string inputFile)
  8. {
  9. var lines = File.ReadAllLines(inputFile);
  10. var width = lines.First().Length;
  11. var height = lines.Length;
  12. return new Map(width, height, TileFactory(lines));
  13. }
  14. private IEnumerable<Tile> TileFactory(string[] lines)
  15. {
  16. return lines.SelectMany(l => l).Select(c => new Tile(c));
  17. }
  18. }