using System; using System.Collections.Generic; namespace VCommon.DataModel { public class TreeModel { public T Node { get; set; } public IReadOnlyCollection> Children { get; set; } public TreeModel() { } public TreeModel(T node, IReadOnlyCollection> children) { Node = node; Children = children; } public void Traverse(Action visitor) { visitor(Node); foreach (var child in Children) child.Traverse(visitor); } } }