示例#1
0
        /// <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);
        }
示例#2
0
    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>();
 }