addMatches() приватный Метод

private addMatches ( List matches ) : void
matches List
Результат void
Пример #1
0
        public static void doMatch(int cIdx, int cInt, ref List<TrieNodePtr> list, List<WordMatch> matches)
        {
            List<TrieNodePtr> newList = new List<TrieNodePtr>();
            Logger.LogTrace("doMatch cIdx: {} char: {} list size {} matches size {}", 
            	cIdx, (char)(cInt + (int)'a'), list.Count, matches.Count);

            foreach (TrieNodePtr nodePtr in list)
            {
            	//Found a direct match
                if (nodePtr.node.children[cInt] != null)
                {
                    TrieNodePtr newNp = new TrieNodePtr(nodePtr, nodePtr.node.children[cInt]);
                    newList.Add(newNp);
                    newNp.addMatches(matches);
                }

                //If last change > 5, then add the rest of the children
                if (nodePtr.numChanges == 0 || cIdx - nodePtr.rightChangeIndex >= minDistance)
                {
                    foreach (var x in nodePtr.node.childrenList)
                    {
                        int charInt = x.Item1;
                        TrieNode childNode = x.Item2;

                        //Ignore direct match, was taken care of above
                        if (charInt == cInt)
                            continue;

                        TrieNodePtr newNp = new TrieNodePtr(nodePtr, childNode, cIdx);
                        newList.Add(newNp);
                        newNp.addMatches(matches);
                    }
                }
            }

            list = newList;



        }