Как в C# преобразовать список записей в неопределенное количество уровней иерархии?C#

Место общения программистов C#
Гость
Как в C# преобразовать список записей в неопределенное количество уровней иерархии?

Сообщение Гость »


В настоящее время мы получаем список учетных записей, у которых есть необязательный идентификатор родительской учетной записи. При обработке данных мы поняли, что отношения между родителями и детьми не так просты, как мы думали. Мы обнаружили, что многие иерархии имеют глубину 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

Вернуться в «C#»