public ValidRange Intersection(ValidRange validRange) { IntRange newRange = base.Intersection(validRange); List <int> newInvalid = (List <int>)invalid.Union(validRange.invalid); newInvalid.RemoveAll(v => v <= newRange.min || v >= newRange.max); return(new ValidRange(newRange, newInvalid.ToArray())); }
public ValidRange Union(ValidRange validRange, bool ignoreOutOfRange = false) { return(new ValidRange(base.Union(validRange, ignoreOutOfRange), invalid.Union(validRange.invalid).ToArray())); }