, , . foreach, ? , .
, , :
private bool IsDestinationNodeAChildOfDraggingNode(TreeNode draggingNode, TreeNode destinationNode) {
if (draggingNode.Nodes.Count == 0)
return false;
if (draggingNode.Nodes.Contains(destinationNode))
return true;
foreach (TreeNode node in draggingNode.Nodes)
if (IsDestinationNodeAChildOfDraggingNode(node, destinationNode))
return true;
return false;
}
, - , :
private bool IsDestinationNodeAChildOfDraggingNode(TreeNode draggingNode, TreeNode destinationNode) {
bool retVal = false;
if (draggingNode.Nodes.Count != 0) {
if (draggingNode.Nodes.Contains(destinationNode)) {
retVal = true;
} else {
foreach (TreeNode node in draggingNode.Nodes)
if (IsDestinationNodeAChildOfDraggingNode(node, destinationNode)) {
retVal = true;
break;
}
}
}
return retVal;
}