예제 #1
0
        /// <summary>兄弟ノードを取得する。
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        public static TreeNode[] GetBrotherNodes(this TreeNode node)
        {
            var broNodes = new List<TreeNode>();

            for (var iNode = node.PrevNode; iNode != null; iNode = iNode.PrevNode)
            {
                broNodes.Add(iNode);
            }

            broNodes.Reverse();

            for (var iNode = node.NextNode; iNode != null; iNode = iNode.NextNode)
            {
                broNodes.Add(iNode);
            }

            return broNodes.ToArray();
        }
예제 #2
0
        /// <summary>ルートノードからのパスを表すノード配列を取得する。
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        public static TreeNode[] GetPath(this TreeNode node)
        {
            var list = new List<TreeNode>();
            for (var i = node; i != null; i = i.Parent)
            {
                list.Add(i);
            }

            return list.Reverse<TreeNode>().ToArray();
        }