Я пытаюсь создать дерево из несколько большого списка из 13883 объектов с помощью Linq для сортировки объектов в родительских и дочерних группах, каждый объект связан с parentId, я могу сгруппировать объекты вместе с использованиемСортировка списка в дочерних элементах с использованием linq
var sortedList = marketItems.GroupBy(p => p.parentId).Select(grp => grp.ToList()).ToList();
но сортирует их только в группы, я не свободно с LINQ и не могу понять, как правильно отобразить детей. нулевой ParentGroup - это верхний уровень дерева. Любой, у кого больше опыта работы с linq, может предложить некоторые идеи о том, как правильно группировать список.
public JsonResult GetJsTree3Data()
{
var marketItems = new List<JsTree3Node>();
var itemList = new List<JsTree3Node>();
foreach (var group in GenerateGroups(connString))
{
var node = JsTree3Node.NewNode(group.id_str);
node.text = group.name;
node.state = new State(false, false, false);
node.parentId = group.marketParentGroup;
marketItems.Add(node);
}
foreach (var group in GenerateItems(connString))
{
var node = JsTree3Node.NewNode(group.id_str);
node.text = group.name;
node.state = new State(false, false, false);
node.parentId = group.marketParentGroup;
marketItems.Add(node);
}
// Create our root node and ensure it is opened
var root = new JsTree3Node()
{
id = "0",
text = "Market Items",
state = new State(true, false, false)
};
var sortedList = marketItems.GroupBy(u => u.parentId).Select(grp => grp.ToList()).ToList();
root.children = sortedList;
return Json(root, JsonRequestBehavior.AllowGet);
}
Конечный результат я пытаюсь achive дерево элементов, которые пользователи могут выбирать. есть только один уровень дерева, как дети Арент заказаны в отсортированном списке
Мне непонятно, что вы пытаетесь сделать. Что такое Parent Group 2? Есть ли какой-то идентификатор, который говорит, например, какой элемент является родительским элементом ID 2157 (структурные изменения, родительская группа 2)? В ваших данных нет ничего, что позволило бы мне получить это. –
Итак, конечная цель состоит в том, чтобы выйти со списком родительских/дочерних пар? – Abion47
Вы хотите сортировать список детей под каждым родителем отдельно? Они должны сортироваться по имени? –