/// <summary> /// Gets all <see cref="DataRegion"/>s that are <em>not</em> stored in /// this <see cref="DataRegionSet"/> within a specific boundary <see cref="DataRegion"/>. /// </summary> /// <param name="boundaryRegion">The boundary <see cref="DataRegion"/>.</param> /// <returns>All <see cref="DataRegion"/>s within the <paramref name="boundaryRegion"/> /// that are <em>not</em> stored in this <see cref="DataRegionSet"/>.</returns> /// <seealso cref="GetRegionsWithin(DataRegion)"/> public IEnumerable <DataRegion> GetMissingRegions(DataRegion boundaryRegion) { lock (locker) { DataRegionSet negative = new DataRegionSet { boundaryRegion }; foreach (var toRemove in this.GetRegionsWithin(boundaryRegion)) { negative.Remove(toRemove); } return(negative); } }