gpt4 book ai didi

c# - 好的 lambda 表达式或减少每个循环的更好方法

转载 作者:太空狗 更新时间:2023-10-30 00:17:23 32 4
gpt4 key购买 nike

我想获取根文件夹的子文件夹。我可以通过下面的代码得到它。但是当子文件夹中有一个子文件夹时出现问题,我过来为每个循环写一秒钟。但是如果第二个子文件夹下有一个子文件夹怎么办。所以每个循环都会有一个无穷大,所以我必须克服它。任何帮助都是值得的。提前致谢。

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

最佳答案

递归的完美场所:

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

理论上,你可以拥有recursive lambdas , 但它们太复杂了。

关于c# - 好的 lambda 表达式或减少每个循环的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2295633/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com