Ошибка в рекурсивной функции в C# - PullRequest
0 голосов
/ 01 мая 2020

Моя рекурсивная функция:

private dynamic FillRecursive(List<AllAccounts> flatObjects, Guid accountID)
{
    List<AllAccounts> recursiveObjects = new List<AllAccounts>();

    foreach (var item in flatObjects.Where(x => x.ParentID.Equals(accountID)))
    {
        recursiveObjects.Add(new AllAccounts
            {
                AccountID = item.AccountID ,                
                Children = FillRecursive(flatObjects, item.AccountID)
            });
    }

    return recursiveObjects;
}

Когда я отправляю запрос этой функции от почтальона, он останавливает запущенную программу в коде Visual Studio. Пожалуйста, помогите мне решить эту проблему. Спасибо

1 Ответ

0 голосов
/ 02 мая 2020

Проверьте, работает ли эта работа

private dynamic FillRecursive(List<AllAccounts> flatObjects, Guid accountID,  List<AllAccounts> recursiveObjects=null)
{
    if(recursiveObjects==null)
       recursiveObjects = new List<AllAccounts>();

    foreach (var item in flatObjects.Where(x => x.ParentID.Equals(accountID)))
    {
        recursiveObjects.Add(new AllAccounts
            {
                AccountID = item.AccountID ,                
                Children = FillRecursive(flatObjects, item.AccountID,recursiveObjects)
            });
    }

    return recursiveObjects;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...