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