using System.Collections.Generic;
public static class Program
public static int countIterations = 0;
public static void Main()
Guid id = new Guid("418bb1ed-4edb-432d-885d-3e602a1a0246");
List<Guid> departmentIds = new List<Guid> { id };
List<Guid> nextIds = new List<Guid> { };
var allDepartmentIds = GetAllDepartments(1000, id);
var childDepartments = allDepartmentIds.Where( c => {
return c.ParentItemId == id;
departmentIds.AddRange( childDepartments.Select( c => c.Id ) );
nextIds.AddRange( childDepartments.Select( c => c.Id ) );
var test = childDepartments.Select( c => c.Id ).ToList();
childDepartments.Select( c => c.Id ).ToArray();
Console.WriteLine(countIterations);
Console.WriteLine(ex.StackTrace);
public class SkeletonNode
public Guid Id { get; set; }
public Guid? ParentItemId { get; set; }
private static List<SkeletonNode> GetAllDepartments(int count, Guid lastDepartment) {
var departments = new List<SkeletonNode>();
Guid? parentItemId = null;
for(int i = 0; i < count; i++)
departments.Add( new SkeletonNode {
ParentItemId = parentItemId
departments.Add( new SkeletonNode {
departments.Add( new SkeletonNode {
ParentItemId = lastDepartment