Example #1
0
        public bool TryGetValue(int key, out T value)
        {
            if (key < 0)
            {
                if (_Negative == null)
                {
                    value = default(T);
                    return(false);
                }
                else
                {
                    return(_Negative.TryGetValue(0 - key, out value));
                }
            }

            if (key >= _Capability)
            {
                value = default(T);
                return(false);
            }

            int index = key / _BucketSize;

            if (_Index[index] == null)
            {
                value = default(T);
                return(false);
            }

            int subIndex = key % _BucketSize;

            if (_Index[index].Used[subIndex] == 0)
            {
                value = default(T);
                return(false);
            }

            value = _Index[index].Data[subIndex];

            return(true);
        }