1

次の構造の階層オブジェクトがあります。

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

フォルダがルートフォルダの場合、親はになりますnull。フォルダがルートでない場合、親はnot nullです。

フォルダの最終的な親を見つける必要があります。つまり、ルートフォルダ(not null)が存在する場合はそれを見つける必要があります。

可能であれば、whileループを回避することをお勧めします。可能であれば、Linq式を使用してそれを実行したいと思います。

4

1 に答える 1

11

それが最速の方法であるのに、なぜwhileループを避けるのですか?

Folder root = myFolder;
while(root.Parent != null) root = myFolder.Parent;
于 2011-02-28T17:41:48.763 に答える