public ImmutableArray <T> Remove(T item) { using (Lock.Enter()) { return(DistinctSet.Remove(item) ? DistinctInOrderArrayStorage = DistinctInOrderArrayStorage.Remove(item) : DistinctInOrderArrayStorage ); } }
public ImmutableArray <T> AddRange(IEnumerable <T> items) { ImmutableArray <T> arr = (items ?? Enumerable.Empty <T>()).ToImmutableArray(); using (Lock.Enter()) { if (arr.IsEmpty) { return(DistinctInOrderArrayStorage); } arr .Where(DistinctSet.Add) .ToImmutableArray() .AssignOut(out arr) ; return(arr.IsEmpty ? DistinctInOrderArrayStorage : DistinctInOrderArrayStorage = DistinctInOrderArrayStorage.AddRange(arr) ); } }