C#使用LINQ查找最终父级

时间:2011-02-28 17:39:52

标签: linq hierarchical

我有一个具有以下结构的分层对象:

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

如果文件夹是根文件夹,则父级将为null。如果文件夹不是根目录,则父项为not null

我需要找到文件夹的Ultimate父级,即根文件夹(not null),如果存在的话。

如果可能的话,我会提到避免使用while循环。 如果可能的话,我想使用Linq表达式完成它。

1 个答案:

答案 0 :(得分:11)

为什么要避免使用while循环,如果这是最快的方法呢?

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