public void difference_update([NotNull] params object[] /*!*/ sets) { if (sets.Length == 0) { return; } lock (_items) { foreach (object set in sets) { if (object.ReferenceEquals(set, this)) { _items.ClearNoLock(); return; } _items.DifferenceUpdate(SetStorage.GetItems(set)); } } }