void CheckNode(Node node, int multiplyer, Sentence sentence, Dictionary <Variant, int> variants) { foreach (var variant in node.Variants) { if (sentence.Question.Contains(variant.LinkName)) { if (!variants.ContainsKey(variant)) { variants.Add(variant, 0); } variants[variant] += 1 * multiplyer; } } foreach (var childNode in knowlegeBaseManager.GetChilds(node.Id)) { CheckNode(childNode, multiplyer, sentence, variants); } }