В настоящее время мы получаем список учетных записей, у которых есть необязательный идентификатор родительской учетной записи. При обработке данных мы поняли, что отношения между родителями и детьми не так просты, как мы думали. Мы обнаружили, что многие иерархии имеют глубину 3-4 уровня, а иногда даже до 7 уровней в иерархической цепочке.
Мы ищем способ преобразовать источник данные учетной записи в объект со списком дочерних записей, и эти дочерние записи могут иметь дочерние записи и так далее до бесконечности.
Код: Выделить всё
public class AccountSourceData
{
public int Id { get; set; }
public string Name { get; set; }
public int? ParentId { get; set; }
}
public class AccountTransformedData
{
public int Id { get; set; }
public string Name { get; set; }
public List ChildAccounts { get; set;}
}
public List TransformAccountData(List srcAccounts)
{
List accounts = new List();
foreach (var parentAccount in srcAccounts.Where(t => !t.ParentId.HasValue))
{
....
..
....
}
return accounts;
}
Источник: https://stackoverflow.com/questions/781 ... mount-of-h