text: public Row Merge(Row master, Row existing){Row n = new Row();foreach (char ch in master.cells.Keys){master.cells.TryGetValue(ch, out Cell a);Cell s = !existing.cells.TryGetValue(ch, out Cell b) || (b == null) ? new Cell(a) : Merge(a, b);if (s == null){return null;}n.cells[ch] = s;}foreach (char ch in existing.cells.Keys){if (master.At(ch) != null){continue;}n.cells[ch] = existing.At(ch);}return n;}