Я ищу идеи для быстрого и эффективного способа ходить по папкам снизу вверх с помощью C#/.NET 3.5Прогулка дерево папок, снизу вверх
, например:.
-0
--1
--- 12
--2
--- 21 ---
--- 23
первая прогулка хотя: 12,21,22,23 тогда: 1,2
Благодаря
Я ищу идеи для быстрого и эффективного способа ходить по папкам снизу вверх с помощью C#/.NET 3.5Прогулка дерево папок, снизу вверх
, например:.
-0
--1
--- 12
--2
--- 21 ---
--- 23
первая прогулка хотя: 12,21,22,23 тогда: 1,2
Благодаря
обхода дерева обычным способом, и добавить объект, содержащий каждый узел и уровень узла к 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);
Я понимаю, что вы имели в виду сейчас, спасибо :) –
Вы должны глубину каждого узла, и вы должны найти максимум глубину всех узлов, прежде чем начинать движение по дереву. Таким образом, вам нужно пройти все узлы в предположении, по порядку или постобработке, найти их глубины, а затем пересечь все дерево в обратном порядке глубины.
Вы окажетесь в корне дерева. Вы просто хотите пройти эту конкретную ветку? –
Прогуляйтесь по всем ветвям, порядок не важен, если они находятся на одном уровне « –
Тогда я бы предложил прогулку по дереву обычным способом, от корня и хранения только тех узлов, которые вы хотите. Если вам нужны только узлы определенного уровня, вы можете отслеживать уровень, на котором вы находитесь, с помощью счетчика, и выкидывать все узлы, которые вам не нужны. –