I have a foreach method like this:
TreeNode selectedNode = null;
foreach (TreeNode tn in allNodes)
{
if (selectedNode != null) continue;
var designNodes = tn.Nodes;
foreach (TreeNode item in designNodes)
{
if (item.Tag.ToString().Split('|')[0].Equals(designKey.ToString()))
{
selectedNode = item;
continue;
};
if (selectedNode is null)
{
foreach (TreeNode child in item.Nodes)
{
if (child.Tag != null && child.Tag.ToString().Split('|')[0].Equals(designKey.ToString()))
{
selectedNode = child;
continue;
}
if (selectedNode is null)
{
foreach (TreeNode lastLevel in child.Nodes)
{
if (lastLevel.Tag != null && lastLevel.Tag.ToString().Split('|')[0].Equals(designKey.ToString()))
{
selectedNode = lastLevel;
continue;
}
}
}
}
}
}
}
First it iterates into TreeNode parent and assign variable selectedNode
, if it does not found results (selectedNode
still null) it look childs of parent, and if it still null it look at childs of child.
Code it's working but it's too dificult to read, there is a best way to implement this iteration?