我想获取根文件夹的子文件夹.我能够通过以下代码获得它.但是当子文件夹中有一个子文件夹时我会遇到一个问题,而且我会为每个循环写一个秒.但是如果第二个子文件夹下面有一个子文件夹怎么办呢.因此每个循环都会有一个infinte,所以我必须克服它.任何帮助都是值得的.谢谢.
foreach (Folder.Folder folder in FolderService.Instance.GetSubFolders(userContext, folderID))
{
folderById.Add(folder.FolderID, folder);
foreach (Folder.Folder sfolder in FolderService.Instance.GetSubFolders(userContext, folder.FolderID))
{
folderById.Add(sfolder.FolderID, sfolder);
}
}
Run Code Online (Sandbox Code Playgroud)
Ant*_*lev 10
递归的理想场所:
... TraverseFolder(rootFolderID, userContext)
{
var folderById = new ...;
TraverseFolder(folderById, rootFolderID, userContext);
return folderById;
}
void TraverseFolder(folderById, folderID, userContext)
{
var folders = FolderService.Instance.GetSubFolders(userContext, folderID);
foreach(var folder in folders)
{
folderById.Add(folder.FolderID, folder);
TraverseFolder(folder.FolderID);
}
}
Run Code Online (Sandbox Code Playgroud)
从理论上讲,你可以有递归的lambdas,但它们太复杂了.
| 归档时间: |
|
| 查看次数: |
1424 次 |
| 最近记录: |