Finde alle Nachkommen in einem selbstreferenzierenden (Eltern-Kind) hierarchischen Baum

Dies ähnelt der Frage Eltern in einer Baumstruktur für ein bestimmtes Kind finden LINQ (Lambda-Ausdruck)). Anstatt jedoch alle Vorfahren zu finden, muss ich alle Nachkommen finden.

Ich ändere Yacoubs Methode, habe aber nur alle Nachkommen in einem Zweig gefunden.

    private IEnumerable<UserRole> FindAllChildrenRecursively(List<UserRole> allRoles, UserRole role)
{
    var child = allRoles.FirstOrDefault(x => x.ParentId == role.Id);

    if (child == null)
        return Enumerable.Empty<UserRole>();

    return new[] { child }.Concat(FindAllChildrenRecursively(allRoles, child));
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage