我有一个点列表(List)
- 7,43
- 7,42
- 6,42
- 5,42
- 6,43
- 5,43
我想使用 linq 表达式来获取最接近 0,0 的点。例如 - 对于此列表,我期望值为 5,42。
如何使用 LINQ 找到最接近 0,0 点的点?
最佳答案
下面找到具有最低 L^2
范数(二维“距离”的最常见定义)的点,而无需对整个列表执行昂贵的排序:
var closestToOrigin = points
.Select(p => new { Point = p, Distance2 = p.X * p.X + p.Y * p.Y })
.Aggregate((p1, p2) => p1.Distance2 < p2.Distance2 ? p1 : p2)
.Point;
关于c# - 如何使用 LINQ 和 C# 找到最接近 0,0 点的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15092371/