.NET 4.x Перебор коллекций дерева - C#

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

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

Имеется класс
public class TreeModel
 {
    public IEnumerable<TreeModel> Children { get; set;}
    public string DisplayText { get; set; }
}
Имеется коллекция этих классов
ObservableCollection<KitTreeModel> AllItems;
Как организовать (рекурсию или ещё чего) перебор всех элементов коллекции AllItems и их Children, если надо найти совпадающий по какому-то значению DisplayText и вернуть этот TreeModel?

Решение задачи: «.NET 4.x Перебор коллекций дерева»

textual
Листинг программы
public TreeModel Find(Func<TreeModel, bool> myFunc)
        {
            foreach (TreeModel node in Children)
            {
                if (myFunc(node))
                {
                    return node;
                }
                else
                {
                    TreeModel test = node.Find(myFunc);
                    if (test != null)
                        return test;
                }
            }
 
            return null;
        }

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


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

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

6   голосов , оценка 3.667 из 5