C#使用LINQ查找最终父级

Raf*_*aeu 1 linq hierarchical

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

public class Folder
{
    public Folder Parent { get; set; }
    public IList<Folder> Child { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如果文件夹是根文件夹,则父文件夹将是null.如果文件夹不是父目录的根目录not null.

我需要找到一个Folder的Ultimate parent,这意味着,not null如果存在一个根文件夹().

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

Yur*_*ich 11

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

Folder root = myFolder;
while(root.Parent != null) root = myFolder.Parent;
Run Code Online (Sandbox Code Playgroud)

  • @Raffaeu无论如何你要用LINQ来做这件事,我能想到的将会更加昂贵.我无法想象任何事情变得更快或内存占用更少. (2认同)