Рекурсия для выбора элементов - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. есть список групп в котором есть несколько корневых вершин. У каждой группы есть свой айди и так же айди на родителя. Не могу понять как написать цикл для выбора всех групп только по одной корневой вершине. Если делать через foreach не понимаю как сделать цикл что бы он обрабатывал все вложенности. если делать через while не понимаю как остановить цикл в конце пребора. список храниться в List<myclass> Заранее спасибо за помощь.

Решение задачи: «Рекурсия для выбора элементов»

textual
Листинг программы
        public void BuildVisibleTree(TreeView tv,int goodsid, group grouptree, bool correctbranch = false, TreeNode tn = null)
        {
            if (goodsid == 0) correctbranch = true;
            foreach (group child in grouptree.Children)
            {
                bool correct = child.goodsid == goodsid ? true : false;
                TreeNode newnode=null;
                if (correctbranch)
                {
                    newnode = new TreeNode(child.goodsname) { Tag = child };
                    if (tn == null) { tv.Nodes.Add(newnode); }
                    else { tn.Nodes.Add(newnode); }
                }
                BuildVisibleTree(tv,goodsid, child, correctbranch ? true : correct, newnode);
                if (correct) break;
            }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы