/// <inheritdoc cref="Impl.InternalSet{T}.SetEquals(ISet{T}, int)"/> public bool SetEquals(MSet <T> other) { return(Count == other.Count && IsSubsetOf(other)); }
public MSet <T> Union(MSet <T> other) { return(Union(other._set, false)); }
public bool Overlaps(MSet <T> other) { return(_set.Overlaps(other.InternalSet, _comparer)); }
/// <inheritdoc cref="Impl.InternalSet{T}.IsProperSupersetOf(ISet{T}, IEqualityComparer{T}, int)"/> public bool IsProperSupersetOf(MSet <T> other) { return(Count > other.Count && IsSupersetOf(other)); }
public bool IsSubsetOf(MSet <T> other) { return(Count <= other.Count && _set.IsSubsetOf(other.InternalSet, other.Comparer)); }
public bool IsSupersetOf(MSet <T> other) { return(Count >= other.Count && _set.IsSupersetOf(other.InternalSet, _comparer)); }
public int SymmetricExceptWith(MSet <T> other) { int d = _set.SymmetricExceptWith(other.InternalSet, _comparer); _count += d; return(d); }
/// <summary>Removes all items from this set that are not present in 'other'.</summary> public int IntersectWith(MSet <T> other) { int r = _set.IntersectWith(other.InternalSet, other.Comparer); _count -= r; return(r); }
public int ExceptWith(MSet <T> other) { int r = _set.ExceptWith(other.InternalSet, _comparer); _count -= r; return(r); }
public int UnionWith(MSet <T> other, bool replaceIfPresent = false) { int a = _set.UnionWith(other.InternalSet, _comparer, replaceIfPresent); _count += a; return(a); }
bool IEquatable <MSet <T> > .Equals(MSet <T> rhs) { return(SetEquals(rhs)); }