Удаляя sessionFound
, вы получаете довольно ясный и понятный код:
private void SetProjectFolder(string sessionid)
{
//IoC container gives the root directory to begin search.
string[] supportDirs = Directory.GetDirectories(ApplicationContainer.SupportDirectory);
// search for product subfolder
foreach (string directory in supportDirs)
{
foreach (string folder in Directory.GetDirectories(directory))
{
foreach (string productSubFolder in Directory.GetDirectories(folder))
{
if (productSubFolder.Contains(sessionid))
{
// product sub-folder found, set it and exit
_productName = Directory.GetParent(productSubFolder).Parent.Name;
return;
}
}
}
}
// product sub-folder not found
!!! handle error path
}
Если ваша структура каталогов статична в смысле вышеупомянутого алгоритма поиска, я не думаю,что-то не так с вложенными foreach
утверждениями.Может быть, вы могли бы извлечь код, начинающийся с середины foreach
, в отдельный метод, например string FindProductSubfolderInFolder(Directory)
.