Refactor Day04 to use Index() extension method

This commit is contained in:
Sebastian Lindemeier
2025-12-05 09:04:27 +01:00
parent 0d028c4282
commit 31caf429ca
2 changed files with 22 additions and 5 deletions
+5 -4
View File
@@ -55,16 +55,17 @@ public class Day04 : IPuzzleSolver<long>
private HashSet<Coordinate> GetRollCoordinates(IEnumerable<string> paperrollGrid)
{
var coordinates = paperrollGrid
.SelectMany((gridLine, xIndex) => GetCoordinates(gridLine, xIndex))
.Index()
.SelectMany(indexedLine => GetCoordinates(indexedLine.Item, indexedLine.Index))
.ToHashSet();
return coordinates;
}
private IEnumerable<Coordinate> GetCoordinates(string gridLine, int xIndex)
{
var indexedCharacters = gridLine.Select((character, yIndex) => (character, yIndex));
var validRolls = indexedCharacters.Where(tuple => tuple.character == '@');
var rollCoordinates = validRolls.Select(tuple => (xIndex, tuple.yIndex));
var indexedCharacters = gridLine.Index();
var validRolls = indexedCharacters.Where(tuple => tuple.Item == '@');
var rollCoordinates = validRolls.Select(tuple => (xIndex, tuple.Index));
return rollCoordinates;
}