Exemplo n.º 1
0
        protected internal static int BinarySearch(UnmanagedStringArray a, UnmanagedStringArray.UnmanagedString key, int low, int high)
        {
            while (low <= high)
            {
                int mid    = Number.URShift((low + high), 1);
                var midVal = a[mid];
                int cmp;
                if (midVal.IsNull == false)
                {
                    cmp = UnmanagedStringArray.UnmanagedString.CompareOrdinal(midVal, key);
                }
                else
                {
                    cmp = -1;
                }

                if (cmp < 0)
                {
                    low = mid + 1;
                }
                else if (cmp > 0)
                {
                    high = mid - 1;
                }
                else
                {
                    return(mid);
                }
            }
            return(-(low + 1));
        }
Exemplo n.º 2
0
 public AlphanumericStringComparisonState(UnmanagedStringArray.UnmanagedString originalString)
 {
     StringLength             = Encoding.UTF8.GetCharCount(originalString.StringAsBytes);
     OriginalString           = originalString;
     CurSequenceStartPosition = 0;
     NumberLength             = 0;
     CurSequenceIsNumber      = false;
     CurCharacter             = (char)0;
     CurPositionInString      = 0;
     StringBufferOffset       = 0;
 }
Exemplo n.º 3
0
 public override void  SetBottom(int bottom)
 {
     bottomSlot = bottom;
     if (readerGen[bottom] != currentReaderGen)
     {
         Convert(bottomSlot);
     }
     bottomOrd = ords[bottom];
     System.Diagnostics.Debug.Assert(bottomOrd >= 0);
     System.Diagnostics.Debug.Assert(bottomOrd < lookup.Length);
     bottomValue = values[bottom];
 }
Exemplo n.º 4
0
 public override void SetBottom(int slot)
 {
     _bottom = _values[slot];
 }
Exemplo n.º 5
0
 private static bool IsNull(UnmanagedStringArray.UnmanagedString str1)
 {
     return(str1.IsNull || UnmanagedStringArray.UnmanagedString.CompareOrdinal(str1, NullValue) == 0);
 }
Exemplo n.º 6
0
 protected internal static int BinarySearch(UnmanagedStringArray a, UnmanagedStringArray.UnmanagedString key)
 {
     return(BinarySearch(a, key, 0, a.Length - 1));
 }