PointCollection(C#)中X和Y坐标的最小值

时间:2010-11-22 12:18:19

标签: c# coordinates max point minimum

我们假设我有一组积分(PointCollection)。 我想要做的是找到这些点之间的X和Y坐标的最小值。 显然,人们可以遍历集合并逐步检查坐标。

我想知道是否有更快更有效的解决方案。

你有什么想法吗?

由于

2 个答案:

答案 0 :(得分:4)

更快输入?也许:

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 :(得分:1)

要单独获得最低的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 );