1

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

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

你有什么想法?

谢谢

4

2 回答 2

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;
    }
}
于 2010-11-22T12:21:16.563 回答
2

要分别获得最低的 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 );
于 2010-11-22T12:22:09.390 回答