Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Remove() [4/4]

static MutationResult System.Collections.Immutable.ImmutableHashSet< T >.Remove ( T item,
MutationInput origin )
inlinestaticprivate

Definition at line 1000 of file ImmutableHashSet.cs.

1001 {
1002 OperationResult result = OperationResult.NoChangeRequired;
1003 int num = ((item != null) ? origin.EqualityComparer.GetHashCode(item) : 0);
1004 SortedInt32KeyNode<HashBucket> root = origin.Root;
1005 if (origin.Root.TryGetValue(num, out var value))
1006 {
1007 HashBucket newBucket = value.Remove(item, origin.EqualityComparer, out result);
1008 if (result == OperationResult.NoChangeRequired)
1009 {
1010 return new MutationResult(origin.Root, 0);
1011 }
1012 root = UpdateRoot(origin.Root, num, origin.HashBucketEqualityComparer, newBucket);
1013 }
1014 return new MutationResult(root, (result == OperationResult.SizeChanged) ? (-1) : 0);
1015 }
bool ICollection< KeyValuePair< TKey, TValue > >. Remove(KeyValuePair< TKey, TValue > keyValuePair)
static SortedInt32KeyNode< HashBucket > UpdateRoot(SortedInt32KeyNode< HashBucket > root, int hashCode, IEqualityComparer< HashBucket > hashBucketEqualityComparer, HashBucket newBucket)

References System.Collections.Immutable.ImmutableHashSet< T >.MutationInput.EqualityComparer, System.Collections.Generic.IEqualityComparer< in T >.GetHashCode(), System.Collections.Immutable.ImmutableHashSet< T >.MutationInput.HashBucketEqualityComparer, System.item, System.Collections.Generic.Dictionary< TKey, TValue >.Remove(), System.Collections.Immutable.ImmutableHashSet< T >.MutationInput.Root, System.Collections.Generic.Dictionary< TKey, TValue >.TryGetValue(), System.Collections.Immutable.ImmutableHashSet< T >.UpdateRoot(), and System.value.