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; } } }
private bool GetCapitalChildren(char key, out WordTree wordTree) { if (key >= 'a' && key <= 'z') { key = (char)(key - 32); } return(CapitalChildren.TryGetValue(key, out wordTree)); }
private bool HasChild() { return(OriginalChildren.Any() || CapitalChildren.Any()); }