我们假设我有一组积分(PointCollection
)。
我想要做的是找到这些点之间的X和Y坐标的最小值。
显然,人们可以遍历集合并逐步检查坐标。
我想知道是否有更快更有效的解决方案。
你有什么想法吗?
由于
答案 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 );