namespace Day12; public class Arrangement { private readonly IList _items; public Arrangement(string arrangement) { _items = arrangement.Select(c => { switch (c) { case '.': return (byte) 0; case '#': return (byte) 1; default: return (byte) 255; } }).ToList(); } public Checksum CalculateChecksum() { var values = new List(); var c = 0; foreach (var i in _items) { if (i == 1) { c++; } else if (c > 0) { values.Add(c); c = 0; } } return new Checksum(values.ToArray()); } }