2013-04-30 2 views
1

목록에서 PointsInSpace 선택한 반경을 가진 원 안에있는 모든 elemets를 선택하고 싶습니다.요소의 힘을 검사하여 목록에서 요소를 필터링하는 방법?

클래스 XY 회원 그래서 (0,0)에서 중심 선택한 반경 r 위해 나는 다음과 같은 조건

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

합니까을 만족하는 목록 PointsInSpace에서 어떤 요소 르 확인해야

double x, 
double y 

입니다 누구든지 람다 식을 사용하여 조건을 만족하는 목록에서 모든 요소를 ​​필터링하는 방법을 알고 있습니다. 또는 먼저 힘을 계산하고 필터링하지 않아도되는 간단한 방법을 알고 있습니까?

나는 다음과 같은 (의사) 같은 것을 구현에 대해 생각했다 :

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

라인을보다 확실히 오류가 있습니다. 누군가가 그들의 힘에 의해 맞는 요소에 비슷한 방법을 제안한다면 나는 매우 감사 할 것입니다.

감사합니다.

답변

2

당신은 내 식으로 대괄호에 문제가있는 것 같습니다. 사용해보기 :

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