public class TreeViewDto
{
public string Name {get; set;}
public Guid RowGuid {get; set;}
public List<TreeViewDto> ChildDtos {get; set;}
public int NumberofChildern {get; set;}
}
L = уровень C = дочерний элемент
Root
-RowGuid
-ChildDtos -- (L1C1)
-RowGuid
-ChildDtos -- (L2C1)
-RowGuid
-ChildDtos
(L2C2)
-RowGuid
-ChildDtos --
(L3C1)
-RowGuid
ChildDtos
Я хочу добавить дочерний TreeViewDto в указанный c родительский узел, где выполняется условие.
Я нашел похожий тип решения добавить узел, чтобы указать c дочерний узел , но это не помогло мне.
То, что я пробовал до сих пор, это -
private TreeViewDto FindNode(TreeViewDto root, Guid target)
{
foreach (var node in root.ChildDtos)
{
if (node.Nodes.Count > 0)
return FindNode(root, target);
if (node.RowGuid == target)
return node;
}
return null;
}
Проблема в том, что выше метод возвращает только один узел, но мне нужно дерево, в котором выполняется условие. или я хочу добавить ChildDto к тому исходному дереву, где совпадают условия.
* Примечание. Дерево может иметь любое число дочерних элементов.
Заранее спасибо.