Создайте функцию рекурсии для ответа другим объектом [закрыто]C#

Место общения программистов C#
Anonymous
Создайте функцию рекурсии для ответа другим объектом [закрыто]

Сообщение Anonymous »

Я получаю следующие данные из HTTP-запроса, чтобы получить все доступные меню:

Код: Выделить всё

[
{
"ID": "2",
"Name": "Home",
"ParentID": "1",
"Path": "/home"
},
{
"ID": "3",
"Name": "Contacts",
"ParentID": "1",
"Path": "/contacts"
},
{
"ID": "4",
"Name": "Help",
"ParentID": "3",
"Path": "/contacts/help"
},
{
"ID": "5",
"Name": "Form",
"ParentID": "4",
"Path": "/contacts/help/form"
},
{
"ID": "6",
"Name": "Information",
"ParentID": "4",
"Path": "/contacts/help/information"
}
]
С этой информацией мне нужно создать HTTP POST метод, на который мне нужно отвечать с помощью следующая структура:

Код: Выделить всё

[
{
"Name": "Home",
"Path": "/home",
"Childrens": []
},
{
"Name": "Contacts",
"Path": "/contacts",
"Childrens": [
{
"Name": "Help",
"Path": "/contacts/help",
"Childrens": [
{
"Name": "Form",
"Path": "/contacts/help/form",
"Childrens": []
},
{
"Name": "Information",
"Path": "/contacts/help/information",
"Childrens": []
}
]
}
]
}
]
Мой метод:

Код: Выделить всё

[AllowCrossSiteJson]
[ActionName("GetMenu")]
[AcceptVerbs("POST", "OPTIONS")]
[Route("menu")]
public ActionResult GetMenuRest()
{
var allMenus = GetMenu(); // Get menus from external API

List response = new List{
// TODO
};

return new HttpStatusContentResult(response);
}

public List GetMenu()
{
using (var client = new HttpClient())
{
var endpoint = new Uri("https://.../gettree"); // External API to get tree
var response = client.GetAsync(endpoint).Result;
var menus = JsonConvert.DeserializeObject(response.Content.ReadAsStringAsync().Result);
return menus; // Menus available
}
}
Примечания:
ID всегда уникален;
ParentID — это ссылка (ID) на родительский элемент (ParentID=1 — это источник "/"< /эм>). У каждого объекта есть ParentID.
Как это сделать? Могу ли я использовать функцию рекурсии, чтобы создать нужный мне ответ?
P.S. Буду признателен, если вы дадите мне просто советы и подсказки.
(Отредактировано)

Подробнее здесь: https://stackoverflow.com/questions/787 ... ent-object

Вернуться в «C#»