public void Add(string str, int value) { ReadOnlySpan <byte> bytes = Encoding.UTF8.GetBytes(str); AutomataNode node = this.root; while (bytes.Length > 0) { var key = AutomataKeyGen.GetKey(ref bytes); if (bytes.Length == 0) { node = node.Add(key, value, str); } else { node = node.Add(key); } } }