Что ж, кроме дерева, у вас будут некоторые базовые данные. Например, дерево каталогов. Атрибутами каталога являются его имя и список дочерних каталогов. Мы начнем с определения общего TreeItem
.
public class TreeItem<T> {
public TreeItem() {
Children = new List<TreeItem<T>>();
}
public void AddChild(T data) {
Children.Add(new TreeItem<T>{Data = data, Parent = this});
}
public List<TreeItem<T>> Children{get;set;}
public TreeItem<T> Parent {get;set;}
public T Data {get;set;}
}
Итак, простое дерево каталогов - это просто TreeItem<string>
:
* +1007 *
Это создаст дерево вроде этого:
root
|- child1
|- child2
|- child3
Единственный способ сделать полностью универсальное древовидное представление - это иметь одинаковые типы для текущего узла, узла выше и всех дочерних узлов, в противном случае вам придется исправлять структуру во время компиляции и поддерживать только иерархию наборов. *