private static string[] GetDependencyBranch(Dependency dependency, Dependency[] parsedDependencies) { var branch = new List<string> { dependency.SecondTask }; var nextDependency = parsedDependencies.SingleOrDefault(d => d.SecondTask == dependency.FirstTask); var dependencyCount = 0; while (nextDependency != null && dependencyCount < parsedDependencies.Count()) { var currDependency = nextDependency; branch.Add(currDependency.SecondTask); nextDependency = parsedDependencies.SingleOrDefault(d => d.SecondTask == currDependency.FirstTask); dependencyCount++; } return branch.ToArray(); }