public void AddNode(TreeNodes target) { lock(_syncLock) { nodes.Add(target); } }
private TreeNodes SearchNodesInPrivate(TreeNodes targetNodes, string namePath) { var targetPath = namePath.Split('.'); var validPath = false; TreeNodes existsNodes = null; var validNode = from x in targetNodes.Nodes where x.Name.ToLower() == targetPath[0].ToLower() select x; if(validNode.Any()) { existsNodes = validNode.FirstOrDefault(); validPath = true; } if (!validPath) { return targetNodes; } var nextPath = namePath.Substring(targetPath[0].Length, namePath.Length - targetPath[0].Length); if (nextPath.StartsWith(".")) { nextPath = nextPath.Substring(1, nextPath.Length - 1); } if (string.IsNullOrEmpty(nextPath)) { return existsNodes; } return SearchNodesInPrivate(existsNodes, nextPath); }