System.Globalization.CultureTable.GetDataItemFromRegionName C# (CSharp) Method

GetDataItemFromRegionName() private method

private GetDataItemFromRegionName ( String name ) : int
name String
return int
        unsafe internal int GetDataItemFromRegionName(String name) {
            BCLDebug.Assert(name!=null,"CultureTable.GetDataItemFromRegionName(): name!=null");

            Object dataItem;
            if ((dataItem = hashByRegionName[name]) != null) {
                return (Int32)dataItem;
            }

            int left = 0;
            int right = m_pCultureHeader->numRegionNames - 1;

            while (left <= right) {
                int mid = (left+right)/2;

                int result = CompareStringToStringPoolStringBinary(name, m_pRegionNameIndex[mid].strOffset);
                if (result == 0) {
                    int index = m_pRegionNameIndex[mid].dataItemIndex;
                    hashByRegionName[name] = index;
                    // m_pRegionNameIndex[i].dateItemIndex is the record number for
                    // the information of a culture.
                    return (index);
                }
                if (result < 0) {
                    right = mid - 1;
                } else {
                    left = mid + 1;
                }
            }
            return (-1);
        }