2013-06-22 4 views
0
class objA 
{ 
    public Rectangle area;  
} 

class objB 
{ 
    public Point somepoint; 
} 


List<objA> listA; 
List<objB> listB; 

Теперь я хочу, чтобы получить элементы в lišta и LISTB, где objA.area.contains(objB.point)Как сравнить элементы двух списков в ИНЕКЕ (Linq)

+1

Что вы пробовали? Что ожидается, если прямоугольник ** A ** содержит точки ** X ** и ** Y **, а прямоугольник ** C ** содержит точку ** X **? –

ответ

1

Это должно сделать трюк:

result = listA.Select(a=> 
new{ 
    Rectangle = a, 
    Points =listB.Where(b=>a.Contains(b)) 
}); 
+1

+1 Похоже, что хочет OP. Рассмотрим свойства имени 'Rectanle' и' Points' –

+0

@lazyberezovsky спасибо. Отредактировано – Tormod

0

вы могли бы рассмотреть возможность сделать запрос на from from where стиль, который также называют не-оборудов присоединиться:

from rect in listA 
from point in listB 
where rect.Area.Contains(point.SomePoint) 
select new { rect, point } 
+0

Спасибо ... Никогда не знал, что существует стиль от стиля ... –