3

我需要用路径列表中的对象构建一个树列表。下面的代码有效,但我无法从搜索功能中检索完整路径。请参阅粗体代码...

public List<RestoreTreeViewModel> BuildTree(IEnumerable<string> strings)
{
    return (
      from path in strings
      let split = path.Split('\\')
      group path by path.Split('\\')[0] into g
      select new RestoreTreeViewModel()
      {
          Name = g.Key,
          Nodetype = 2,
          CanReference = true,
          **FullPath = path;**
          Children = BuildTree(            
            from s in g
            where s.Length > g.Key.Length + 1
            select s.Substring(g.Key.Length + 1)) 
      }
      ).ToList();
}

这可以工作还是我应该研究另一种从路径列表构建树的方法?

4

1 回答 1

1

您需要在 BuildTree() 方法中添加一个列表参数,然后将项目附加(或前置)到该列表,以便最终结果将包含路径中的所有项目。

还有其他方法可以解决它,但是如果我了解您要做什么,那似乎很简单。

于 2012-10-31T21:20:57.167 回答