private static bool PartiallyOverlapOrEqual(IEnumerable <IPRange> ranges1, MultiValuedProperty <IPRange> ranges2) { using (IEnumerator <IPRange> enumerator = ranges1.GetEnumerator()) { while (enumerator.MoveNext()) { IPRange range1 = enumerator.Current; if (ranges2.Any((IPRange range) => range1.Equals(range) || range1.PartiallyOverlaps(range))) { return(true); } } } return(false); }