public ORMultiValueDictionary <TKey, TValue> Merge(ORMultiValueDictionary <TKey, TValue> other) { if (_withValueDeltas == other._withValueDeltas) { return(_withValueDeltas ? new ORMultiValueDictionary <TKey, TValue>(Underlying.MergeRetainingDeletedValues(other.Underlying), _withValueDeltas) : new ORMultiValueDictionary <TKey, TValue>(Underlying.Merge(other.Underlying), _withValueDeltas)); } throw new ArgumentException($"Trying to merge two ORMultiValueDictionaries of different map sub-types"); }