从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))
上面的一行肯定有错误。如果有人通过他们的权力向契约元素提出类似的建议,我将非常感激。
谢谢!
答案 0 :(得分:2)
在我看来,你只有表达式中括号的问题。 试试这个:
pointsInCircleRange =PointsInSpace.Where(d => Math.Pow(d.x, 2) + Math.Pow(d.y, 2) <= Math.Pow(r,2));