Refactor Day08 to simplify AddToCircuits logic
This commit is contained in:
parent
c559f61496
commit
36d7a3f4e5
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue