示例#1
0
        public void PushIn(string word)
        {
            if (string.IsNullOrEmpty(word))
            {
                IsEnd = true;
                return;
            }
            var key       = word[0];
            var isCapital = IsCapital(key);

            PushToChild(key, word, isCapital ? CapitalChildren : OriginalChildren);
            if (OriginalChildren.Any() && CapitalChildren.Any())
            {
                TryGetChild = GetAllChildren;
            }
            else
            {
                if (OriginalChildren.Any())
                {
                    TryGetChild = GetOriChildren;
                }
                if (CapitalChildren.Any())
                {
                    TryGetChild = GetCapitalChildren;
                }
            }
        }
示例#2
0
 private bool GetCapitalChildren(char key, out WordTree wordTree)
 {
     if (key >= 'a' && key <= 'z')
     {
         key = (char)(key - 32);
     }
     return(CapitalChildren.TryGetValue(key, out wordTree));
 }
示例#3
0
 private bool HasChild()
 {
     return(OriginalChildren.Any() || CapitalChildren.Any());
 }