/// <summary> /// Debug only; this is hideously inefficient /// </summary> public string GetKey(TrieNodeBase seek) { var sofar = string.Empty; GetKeyHelper fn = null; fn = cur => { sofar += " "; // placeholder foreach (var kvp in cur.CharNodePairs()) { //Util.SetStringChar(ref sofar, sofar.Length - 1, kvp.Key); if (kvp.Value == seek) { return(true); } if (kvp.Value.Nodes != null && fn(kvp.Value)) { return(true); } } sofar = sofar.Substring(0, sofar.Length - 1); return(false); }; if (fn(Root)) { return(sofar); } return(null); }
public String GetKey(TValue seek) { String sofar = String.Empty; GetKeyHelper fn = null; fn = (TrieNodeBase cur) => { sofar += " "; // placeholder foreach (var kvp in cur.CharNodePairs()) { Util.SetStringChar(ref sofar, sofar.Length - 1, kvp.Key); if (kvp.Value.Value != null && kvp.Value.Value.Equals(seek)) { return(true); } if (kvp.Value.Nodes != null && fn(kvp.Value)) { return(true); } } sofar = sofar.Substring(0, sofar.Length - 1); return(false); }; if (fn(_root)) { return(sofar); } return(null); }
private void Awake() { Instance = this; // sp = GetComponent<SpriteRenderer>(); }