private IEnumerable <int> LowestPoints(Grid2D <int> grid) { return(from p in grid.CoordEnumerable() where grid.Adjacents(p, Grid2D.orthogonalNeighbours).All(adjValue => grid.ValueAt(p) < adjValue) select grid.ValueAt(p)); }