Минимальные значения координат X и Y в PointCollection (C #) - PullRequest
1 голос
/ 22 ноября 2010

давайте предположим, что у меня есть набор точек (PointCollection).То, что я хочу сделать, это найти минимальное значение координат X и Y среди этих точек.Очевидно, можно было бы перебрать коллекцию и шаг за шагом проверять координаты.

Интересно, есть ли более быстрое и эффективное решение.

У вас есть идеи?

Спасибо

Ответы [ 2 ]

4 голосов
/ 22 ноября 2010

Быстрее печатать? Может быть:

var xMin = points.Min(p => p.X);
var yMin = points.Min(p => p.Y);

Но это будет выполняться медленнее, чем один foreach цикл:

bool first = true;
foreach(var point in points) {
    if(first) {
        xMin = point.X;
        yMin = point.Y;
        first = false;
    } else {
        if(point.X < xMin) xMin = point.X;
        if(point.Y < yMin) yMin = point.Y;
    }
}
1 голос
/ 22 ноября 2010

Чтобы получить самые низкие позиции x и y отдельно, используйте

var lowestX = pointCollection.Min( p => p.X );
var lowestY = pointCollection.Min( p => p.Y );

Если вам нужна позиция с наименьшими комбинированными позициями X и Y, используйте

var lowest = pointCollection.Min( p => p.X + p.Y );
...