Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public bool Remove(TKey key) {
- if(key == null) {
- ThrowHelper.ThrowArgumentNullException(ExceptionArgument.key);
- }
- if (buckets != null) {
- int hashCode = comparer.GetHashCode(key) & 0x7FFFFFFF;
- int bucket = hashCode % buckets.Length;
- int last = -1;
- for (int i = buckets[bucket]; i >= 0; last = i, i = entries[i].next) {
- if (entries[i].hashCode == hashCode && comparer.Equals(entries[i].key, key)) {
- if (last < 0) {
- buckets[bucket] = entries[i].next;
- }
- else {
- entries[last].next = entries[i].next;
- }
- entries[i].hashCode = -1;
- entries[i].next = freeList;
- entries[i].key = default(TKey);
- entries[i].value = default(TValue);
- freeList = i;
- freeCount++;
- version++;
- return true;
- }
- }
- }
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement