2013-04-30 156 views
1

从列表PointsInSpace中,我想选择所有具有选定半径的圆内的元素。如何通过检查元素的权限来过滤列表中的元素?

类XY成员

double x, 
double y 

所以选定半径r(0,0)中心我必须检查哪些元素文件从列表PointsInSpace满足以下条件

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元素的方法,我将非常感激。

谢谢!

回答

2

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

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