2013-04-30 105 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));