누군가가 도울 수 있기를 바랍니다. 개체가 있습니다.
public class folder
{
public string folderName { get; set; }
public string folderPath { get; set; }
public List<folder> subFolders { get; set; }
}
보시다시피 개체에는 자신을 참조하는 개체가 포함되어있어 폴더 및 하위 폴더 목록을 작성할 수 있습니다.
List<folder> mycustomlist ect..
이 목록은 매우 깊을 수 있으며 트리보기 또는 사용자 지정 목록보기에 바인딩 할 때 제대로 작동합니다.
내 문제는 목록에서 중첩 폴더를 제거하려고하는데, 개체를 가져올 수 있지만 사용할 때
mycustomlist.Remove(thefolder)
제거하기 위해 중첩 된 개체를 찾을 수없는 것 같습니다.
Linq를 사용하여 여러 가지 방법을 시도했지만 기쁨없이이 방법이 더 나은 방법일까요?
누군가가 도울 수 있기를 바랍니다.
감사
Nath
제거하기 위해 중첩 된 개체를 찾을 수없는 것 같습니다.
Remove
재귀 적이 지 않습니다. 목록에서 직접 항목 만 제거합니다.
thefolder
하위 목록에있는 경우 재귀 적으로 검색 한 다음 실제로있는 목록에서 제거해야합니다.
private bool RecursiveRemove(folder thisList, folder thefolder)
{
if (thisList.Contains(theFolder))
{
thisList.Remove(theFolder);
return true;
}
else
{
foreach (var folder in thisList.subFolders)
{
if (RecursiveRemove(folder, theFolder))
{
return true;
}
}
}
return false; // not found
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다