C # Найти конечного родителя с LINQ - PullRequest
1 голос
/ 28 февраля 2011

У меня есть иерархический объект со следующей структурой:

public class Folder
{
    public Folder Parent { get; set; }
    public IList<Folder> Child { get; set; }
}

Если папка является корневой папкой, Родитель будет null. Если папка не является корневым каталогом, родительский элемент - not null.

Мне нужно найти конечного родителя папки, то есть корневую папку (not null), если она существует.

Я хотел бы сослаться на цикл while, если это возможно. Я хотел бы сделать это, используя выражения Linq, если это возможно.

1 Ответ

11 голосов
/ 28 февраля 2011

Зачем избегать цикла while, если это самый быстрый способ сделать это?

Folder root = myFolder;
while(root.Parent != null) root = myFolder.Parent;
...