Пример #1
0
        /// <summary>
        /// Recupera o indice com base na chave informada.
        /// </summary>
        /// <param name="key">Chave que será pesquisada.</param>
        /// <param name="comparisonType">Tipo de comparação.</param>
        /// <returns></returns>
        public ArrayList GetData(object key, ComparisonType comparisonType)
        {
            if (key == null)
            {
                key = CacheNull.Value;
            }
            RedBlack.COMPARE eQ   = RedBlack.COMPARE.EQ;
            ArrayList        list = new ArrayList();

            if (_rbTree == null)
            {
                return(list);
            }
            switch (comparisonType)
            {
            case ComparisonType.EQUALS:
                eQ = RedBlack.COMPARE.EQ;
                break;

            case ComparisonType.NOT_EQUALS:
                eQ = RedBlack.COMPARE.NE;
                break;

            case ComparisonType.LESS_THAN:
                eQ = RedBlack.COMPARE.LT;
                break;

            case ComparisonType.GREATER_THAN:
                eQ = RedBlack.COMPARE.GT;
                break;

            case ComparisonType.LESS_THAN_EQUALS:
                eQ = RedBlack.COMPARE.LTEQ;
                break;

            case ComparisonType.GREATER_THAN_EQUALS:
                eQ = RedBlack.COMPARE.GTEQ;
                break;

            case ComparisonType.LIKE:
                eQ = RedBlack.COMPARE.REGEX;
                break;

            case ComparisonType.NOT_LIKE:
                eQ = RedBlack.COMPARE.IREGEX;
                break;
            }
            return(_rbTree.GetData(key as IComparable, eQ) as ArrayList);
        }
Пример #2
0
        public ArrayList GetData(object key, ComparisonType comparisonType)
        {
            RedBlack.COMPARE compare = RedBlack.COMPARE.EQ;
            ArrayList        result  = new ArrayList();

            if (_rbTree != null)
            {
                switch (comparisonType)
                {
                case ComparisonType.EQUALS:
                    compare = RedBlack.COMPARE.EQ;
                    break;

                case ComparisonType.NOT_EQUALS:
                    compare = RedBlack.COMPARE.NE;
                    break;

                case ComparisonType.LESS_THAN:
                    compare = RedBlack.COMPARE.LT;
                    break;

                case ComparisonType.GREATER_THAN:
                    compare = RedBlack.COMPARE.GT;
                    break;

                case ComparisonType.LESS_THAN_EQUALS:
                    compare = RedBlack.COMPARE.LTEQ;
                    break;

                case ComparisonType.GREATER_THAN_EQUALS:
                    compare = RedBlack.COMPARE.GTEQ;
                    break;

                case ComparisonType.LIKE:
                    compare = RedBlack.COMPARE.REGEX;
                    break;

                case ComparisonType.NOT_LIKE:
                    compare = RedBlack.COMPARE.IREGEX;
                    break;
                }

                result = _rbTree.GetData(key as IComparable, compare) as ArrayList;
            }

            return(result);
        }