/// <summary> /// Removes several keys from this key-value map. /// </summary> /// <param name="keys">A sequence of keys to remove. Can be much faster if it's a set compatible with this map.</param> /// <returns></returns> public override ImmSortedMap <TKey, TValue> RemoveRange(IEnumerable <TKey> keys) { keys.CheckNotNull("keys"); var set = keys as ImmSortedSet <TKey>; if (set != null && Comparer.Equals(set.Comparer)) { return(Root.Except(set.Root, Lineage.Mutable()).WrapMap(Comparer)); } return(base.RemoveRange(keys)); }
protected override ImmSortedSet <T> Except(ImmSortedSet <T> other) { return(Root.Except(other.Root, Lineage.Mutable()).Wrap(Comparer)); }