示例#1
0
        /// <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));
        }
示例#2
0
 protected override ImmSortedSet <T> Except(ImmSortedSet <T> other)
 {
     return(Root.Except(other.Root, Lineage.Mutable()).Wrap(Comparer));
 }