如何通过检查元素的权力来过滤列表中的元素?

时间:2013-04-30 08:39:10

标签: c# .net lambda

从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))

上面的一行肯定有错误。如果有人通过他们的权力向契约元素提出类似的建议,我将非常感激。

谢谢!

1 个答案:

答案 0 :(得分:2)

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

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