public static void AddProjectsToTree(Solution solution,ref Tree tree) { var projects = solution.Projects.ToList(); var allreadyAddedProjects = tree.DescendantNodes().OfType<ProjectNode>().ToList(); foreach (var project in projects) { var existingProject = allreadyAddedProjects.WithName(project.Name); if (existingProject != null) { existingProject.Documents = project.Documents.ToList(); } else { existingProject = new ProjectNode(project); tree.AddChild(existingProject); } } }