private int getSudokuLineIndex(int gridLineIndex, int gridIndex, Definition.LineType lineType) { switch (lineType) { case Definition.LineType.Row: return((gridIndex / 3) * 3 + gridLineIndex); case Definition.LineType.Column: return((gridIndex % 3) * 3 + gridLineIndex); default: throw new InvalidOperationException(lineType.ToString()); } }