public IEnumerable<Values> GetValueOptions(Columns column, Rows row) { var usedValues = GetDeniedValues(column, row); for (int i = 0; i < 9; i++) { Values candidate = (Values)(1 << i); if ((usedValues & candidate) == Values.None) yield return candidate; } }