コード例 #1
0
ファイル: Nodes.cs プロジェクト: barbarossia/CWF
 public void AddNode(TreeNodes target)
 {
     lock(_syncLock)
     {
         nodes.Add(target);
     }
 }
コード例 #2
0
ファイル: Nodes.cs プロジェクト: barbarossia/CWF
        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);
        }