using System.Collections.Generic;
public static void Main()
List<TreeNode> tree = new List<TreeNode> { new TreeNode {
Children = new List<TreeNode> {
Children = new List<TreeNode> {
Children = new List<TreeNode> {
IEnumerable<TreeNode> result = GetAllNodes(tree.First());
string test = string.Join("; ", result.Select(r => r.Id));
Console.WriteLine(string.Format("Hello World - {0}", test));
public static IEnumerable<TreeNode> GetAllNodes(TreeNode node) {
throw new ArgumentNullException(nameof(node));
List<TreeNode> result = new List<TreeNode>();
if(node.Children != null)
foreach(TreeNode child in node.Children)
result.AddRange(GetAllNodes(child));
public IEnumerable<TreeNode> Children { get; set; }