/// <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(); }
/// <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(); }