public override void Insert(int index, Object value)
{
if (index < 0 || index > _baseSize) throw new ArgumentOutOfRangeException(nameof(index), SR.ArgumentOutOfRange_Index);
Contract.EndContractBlock();
InternalUpdateRange();
_baseList.Insert(_baseIndex + index, value);
InternalUpdateVersion();
_baseSize++;
}