public override void RemoveRange(int index, int count)
{
if (index < 0 || count < 0)
throw new ArgumentOutOfRangeException(index < 0 ? nameof(index) : nameof(count), SR.ArgumentOutOfRange_NeedNonNegNum);
if (_baseSize - index < count)
throw new ArgumentException(SR.Argument_InvalidOffLen);
Contract.EndContractBlock();
InternalUpdateRange();
// No need to call _bastList.RemoveRange if count is 0.
// In addition, _baseList won't change the version number if count is 0.
if (count > 0)
{
_baseList.RemoveRange(_baseIndex + index, count);
InternalUpdateVersion();
_baseSize -= count;
}
}