Пройдите по дереву обычным способом и добавьте объект, содержащий каждый узел и уровень узла, в IEnumerable
.
public class DirectoryNode
{
public DirectoryInfo Dir { get; set; }
public int Level { get; set; }
}
public IEnumerable<DirectoryNode> myNodes;
Затем, чтобы получить список, просто вызовите полученный результат IEnumerable
с помощью OrderByDescending
метода расширения linq, например:
var result = myNodes.OrderByDescending(node => node.Level);