Refactor Day08 to simplify AddToCircuits logic

This commit is contained in:
Sebastian Lindemeier 2025-12-08 11:14:18 +01:00
parent c559f61496
commit 36d7a3f4e5
1 changed files with 4 additions and 23 deletions

View File

@ -82,35 +82,16 @@ public class Day08
private List<List<Coordinate>> AddToCircuits(Coordinate a, Coordinate b, List<List<Coordinate>> circuits) private List<List<Coordinate>> AddToCircuits(Coordinate a, Coordinate b, List<List<Coordinate>> circuits)
{ {
var circuitToAddBTo = circuits.FirstOrDefault(circuit => circuit.Contains(a)); var circuitToAddBTo = circuits.First(circuit => circuit.Contains(a));
var circuitToAddATo = circuits.FirstOrDefault(circuit => circuit.Contains(b)); var circuitToAddATo = circuits.First(circuit => circuit.Contains(b));
if (circuitToAddATo == null && circuitToAddBTo == null)
{
circuits.Add([a, b]);
return circuits;
}
if (circuitToAddATo == circuitToAddBTo) if (circuitToAddATo == circuitToAddBTo)
{ {
return circuits; return circuits;
} }
if (circuitToAddATo != null && circuitToAddBTo != null) circuitToAddBTo.AddRange(circuitToAddATo);
{ circuits.Remove(circuitToAddATo);
circuitToAddBTo.AddRange(circuitToAddATo);
circuits.Remove(circuitToAddATo);
return circuits;
}
if (circuitToAddATo != null)
{
circuitToAddATo.Add(a);
}
else
{
circuitToAddBTo!.Add(b);
}
return circuits; return circuits;
} }