У меня есть следующий класс, который должен представлять иерархическую структуру данных
class Person
{
int Id { get; set; }
Person Parent { get; set; }
List<Person> Children { get; set; }
}
В моем пользовательском интерфейсе я получаю коллекцию Person, у каждого из которых могут быть дети.Мне нужно распечатать XML со следующей структурой:
<root>
<Person id="1" parent_id="0" name="">
<Person id="5" parent_id="1" name="">
<Person id="10" parent_id="5" name="">
</Person>
</Person>
<Person id="6" parent_id="1" name="">
</Person>
</Person>
<Person id="2" parent_id="0" name="">
</Person>
</root>
Сейчас я написал это, но мой код не рекурсивный.Можете ли вы помочь мне сделать это с помощью LINQ?
public XDocument GetHtmlWorkbookTree(List<Person> persons)
{
var document = new XDocument();
var root = new XElement("Person",
persons.Select(
r => new XElement("Person",
new XAttribute("id", r.Id))));
document.Add(root);
return document;
}