我有两个线条和矩形列表。我需要做的是从列表中删除“在多个矩形内”的所有行。我知道如何使用循环来做到这一点。我正在寻找在 C# 中使用 Linq 的优雅解决方案。可能吗?
我正在使用 Rectangle.HitTest(Line l) 检查线条是否在矩形内。
如果您已经有 aList<Line>
和 a IEnumerable<Rectangle>
,则可以使用以下RemoveAll
方法:
List<Line> lines = ...
IEnumerable<Rectange> rectangles = ...
lines.RemoveAll(x => rectangles.Where(r => r.HitTest(x)).Skip(1).Any());