Извините, если это задано в другом месте, однако я искал подходящий ответ, однако большая часть информации, которую я нашел, позволяет использовать только один дочерний элемент.Список заказов с дочерними элементами
Я пытаюсь написать программу, которая отображает информацию в интерфейсе стиля древовидной структуры. Проблема я столкнулся в том, что я читаю следующий класс от моей серверной БД:
public class InputClass
{
public int id { get; set; }
public string text { get; set; }
public string icon { get; set; }
public int? parentId { get; set; }
}
, и я стараюсь, чтобы преобразовать его в список следующего вида:
public class OutputClass
{
public int id { get; set; }
public string text { get; set; }
public string icon { get; set; }
public List<OutputClass> children { get; set; }
}
как вы можете видеть, свойство child будет заполняться, когда оно обнаружит его родительский элемент.
В качестве примера - в следующем списке:
var inputList = new List<InputClass>();
inputList.Add(new InputClass() { id = 1, text = "Item #1"});
inputList.Add(new InputClass() { id = 2, text = "Item #2" });
inputList.Add(new InputClass() { id = 3, text = "Item #3" });
inputList.Add(new InputClass() { id = 4, text = "SubItem #1", parentId = 1 });
inputList.Add(new InputClass() { id = 5, text = "SubItem #2", parentId = 1 });
inputList.Add(new InputClass() { id = 6, text = "SubItem #3", parentId = 2 });
должен выводиться как:
Item #1
----SubItem #1
----SubItem #2
Item #2
----SubItem #3
Item #3
количество элементов в списке детей не должны ограничиваться только один. Любые идеи о том, как правильно сортировать их?
Отличный ответ и объяснение. –