Рекурсия для выбора элементов - 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;
            }
        }

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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