Exemplo n.º 1
0
        /**
         * 前缀查询
         *
         * @param key 查询串
         * @return 键值对
         */
        public Dictionary <string, T> prefixSearch(String key)
        {
            var           entrySet = new Dictionary <String, T>();
            StringBuilder sb       = new StringBuilder(key.Substring(0, key.Length - 1));
            BaseNode <T>  branch   = this;

            char[] chars = key.ToCharArray();
            foreach (char aChar in chars)
            {
                if (branch == null)
                {
                    return(entrySet);
                }
                branch = branch.GetChild(aChar);
            }

            if (branch == null)
            {
                return(entrySet);
            }
            branch.Walk(sb, entrySet);
            return(entrySet);
        }