public bool IsRectangleInAnyMergeArea(MyRectangle queryRectangle) { foreach (var levelRingsPair in _mergeRings) { foreach (var ringsPair in levelRingsPair.Value) { var mergeRing = ringsPair.Value; if (MyRectangle.Intersects(mergeRing.OuterRectangle, queryRectangle) && !MyRectangle.IsCompletlyInside(mergeRing.InnerRectangle, queryRectangle)) { return(true); } } } return(false); }