2012-10-31 3 views
2

경로 목록의 개체를 사용하여 트리 목록을 작성해야합니다. 아래 코드는 작동하지만 검색 기능에서 전체 경로를 검색 할 수 없습니다. 굵게 표시된 코드를 참조하십시오.C# 개체가있는 트리의 경로 목록

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(); 
} 

이 방법을 사용할 수 있습니까? 아니면 경로 목록에서 트리를 작성하는 다른 방법을 조사해야합니까?

+0

공개 목록 BuildTree (IEnumerable을 문자열) { 수익률 ( ('\\') path.Split에 의해 그룹 경로 ('\\') g의 (S)으로부터 ** NODETYPE = 2 CanReference = TRUE, 어린이 = BuildTree ( [0]에 새로운 RestoreTreeViewModel g() { NAME = g.Key, ** = fullpath에 경로를 선택 여기서 s.Length> g.Key.Length + 1 select s.Substring (g.Key.Leng th + 1)) } ) .ToList(); } – user1789782

답변

1

목록 매개 변수를 BuildTree() 메서드에 추가 한 다음 최종 결과에 경로의 모든 항목이 포함되도록 항목을 해당 목록에 추가하거나 추가해야합니다.

다른 방법으로 접근하고 있지만 내가하려는 일을 이해하면 곧장 앞으로 나옵니다. 분할 = path.Split 할 문자열의 경로에서

+0

답장을 보내 주셔서 감사합니다. 내가 필요한 것은 목록 루프의 일부로 fullpath 문자열을 채울 필요가 있기 때문에 select 블록에 "path"문자열을 가져 오는 것입니다. – user1789782

관련 문제