private IEnumerable <Definition.Element> Iterator(Definition.Sudoku sudoku, SudokuElementTravelType travelType) { IEnumerable <Definition.IElementCluster> clusters; switch (travelType) { case SudokuElementTravelType.Grid: clusters = sudoku.Grids; break; case SudokuElementTravelType.Row: clusters = sudoku.Rows; break; case SudokuElementTravelType.Column: clusters = sudoku.Columns; break; default: throw new NotImplementedException(); } foreach (var cluster in clusters) { foreach (var element in cluster.Elements) { yield return(element); } } }
public SudokuElementEnumerable(Definition.Sudoku sudoku, SudokuElementTravelType travelType) { if (sudoku == null) { throw new ArgumentNullException("sudoku"); } this.sudoku = sudoku; this.travelType = travelType; }