System.Collections.ArrayList.Range.BinarySearch C# (CSharp) Method

BinarySearch() public method

public BinarySearch ( int index, int count, Object value, IComparer comparer ) : int
index int
count int
value Object
comparer IComparer
return int
            public override int BinarySearch(int index, int count, Object value, IComparer comparer)
            {
                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();

                int i = _baseList.BinarySearch(_baseIndex + index, count, value, comparer);
                if (i >= 0) return i - _baseIndex;
                return i + _baseIndex;
            }