/// <summary> /// Gets the rows to remove. /// </summary> /// <param name="shapeModel">The shape model.</param> /// <returns>A list of row indexes</returns> private static List <int> GetRowsToRemove(this ShapeModel shapeModel) { var rowsToRemove = new List <int>(); for (int row = shapeModel.LastRow(); row >= 1; row--) { if (shapeModel.GetRow(row).All(b => b.Color == CGA16Colors.Black.GetColor())) { rowsToRemove.Add(row); } else { break; } } for (int row = 1; row <= shapeModel.LastRow(); row++) { if (shapeModel.GetRow(row).All(b => b.Color == CGA16Colors.Black.GetColor())) { rowsToRemove.Add(row); } else { break; } } rowsToRemove.Sort(); rowsToRemove.Reverse(); return(rowsToRemove); }