public TokenTreeNode GetNextNode(char c) { char tmp = c; //if case sensitive, to lower if (ContainsCaseInsensitiveData) { tmp = CharUtils.ToLower(c); } //hash the index int index = tmp & 0xff; //get node at index TokenTreeNode node = ChildNodes[index]; while (node != null) { tmp = c; if (node.ContainsCaseInsensitiveData) { tmp = CharUtils.ToLower(c); } if (node.Char == tmp) { break; } node = node.NextSibling; } return(node); }