我正在通过一些股票旅行以获得信息/许可..等等
我正在使用递归遍历所有子共享。它工作正常,但是用户应该能够将子共享级别限制为特定数字,这是应用程序中的参数?
private static INodeCollection NodesLookUp(string path)
{
var shareCollectionNode = new ShareCollection(path);
// Do somethings
foreach (var directory in Directory.GetDirectories(shareCollectionNode.FullPath))
{
shareCollectionNode.AddNode(NodesLookUp(directory));
}
return shareCollectionNode;
}
此代码将一直降到最低级别,如何在特定级别将其停止?例如获得所有份额直到2个级别?
谢谢。
最佳答案
不要使用全局变量来控制级别,而应在每个递归调用中传递maxLevel
和减量。
private static INodeCollection NodesLookUp(string path, int maxLevel)
{
var shareCollectionNode = new ShareCollection(path);
if (maxLevel > 0)
{
foreach (var directory in Directory.GetDirectories(shareCollectionNode.FullPath))
{
shareCollectionNode.AddNode(NodesLookup(directory, maxLevel-1));
}
}
return shareCollectionNode;
}