1

从 PointsInSpace 列表中,我想选择具有选定半径的圆内的所有元素。

XY 类成员是

double x,
double y

r因此,对于以中心为中心的选定半径,(0,0)我必须检查 List PointsInSpace 中的哪个元素 le 满足以下条件

Math.Pow(le.x,2) + Math.Pow(le.y, 2) <= Math.Pow(r,2)

有谁知道如何使用 lambda 表达式或任何不需要首先计算幂然后过滤的简单方法过滤列表中满足条件的所有元素?

我正在考虑实现以下内容(伪代码):

pointsInCircleRange = PointsInSpace.Where(d => Math.Pow(d.x, 2)) + Math.Pow(d.y, 2)) <= Math.Pow(r,2))

上面的行肯定有错误。如果有人通过他们的力量提出与 fitler 元素类似的方法,我将非常感激。

谢谢!

4

1 回答 1

2

在我看来,您只有表达式中的括号有问题。尝试这个:

pointsInCircleRange =PointsInSpace.Where(d => Math.Pow(d.x, 2) + Math.Pow(d.y, 2) <= Math.Pow(r,2));
于 2013-04-30T08:49:55.637 回答