public static Point ToMergedPoint(this Point point, IEnumerable<Point> points) { var p = points.FirstOrDefault(x => Math.Abs(x.X - point.X) < 2 && Math.Abs(x.Y - point.Y) < 2); return p != default(Point) ? p : point; }