Мои данные подобны приведенной ниже таблице (для простоты я исключал любые значения, не относящиеся к порядку сортировки).Рекурсивная сортировка объектов из той же таблицы
ID POSITION PARENT HASCHILDREN
------------------------------------------
1 1 0 False
2 3 0 True
3 2 0 False
4 1 2 False
5 2 2 False
Что я хочу сделать, это рекурсивно сортировать эти данные по положению в объекты. Объект у меня есть, как этот
public class ExampleObject
{
public int ID { get; set; }
public int Position { get; set; }
public int Parent { get; set; }
public bool HasChildren { get; set; }
public List<ExampleObject> Children { get; set; }
}
выше объект является рекурсивным в том смысле, что он всегда может иметь свои собственные ребенок, даже если в данном примере это только два слоя глубоко. Я не знаю, как структурировать результат на SO, но вот JSON за то, что я хотел бы, чтобы результат
[
{
ID: 1,
Position: 1,
Parent: 0,
HasChildren: false,
Children: []
},
{
ID: 3,
Position: 2,
Parent: 0,
HasChildren: false,
Children: []
},
{
ID: 2,
Position: 3,
Parent: 0,
HasChildren: true,
Children: [
{
ID: 4,
Position: 1,
Parent: 2,
HasChildren: false,
Children: []
},
{
ID: 5,
Position: 2,
Parent: 2,
HasChildren: false,
Children: []
}
]
}
]
Я не знаю, с чего начать, что я знаю, что списки будет не очень большой (10-20) предметов, включая детей, и должен быть в основном отсортированным, если это поможет.
Это выглядит интересно, но я изо всех сил пытаюсь применить его к моему сценарию. Кажется, что это только очень простые примеры, и я не вижу того, что делает TSQL. Результаты запроса отмеченного ответа находятся в том же порядке, что и добавлены в таблицу. –