protected override ITransientMap doWithout(object key) { int i = IndexOfKey(key); if (i >= 0) //have key, will remove { if (_len >= 2) { _array[i] = _array[_len - 2]; _array[i + 1] = _array[_len - 1]; } _len -= 2; } return this; }