Существует такая модель данных:
public sealed partial class Department
{
public int Id { get; set; }
public string NameDepartment { get; set; }
public int ParentId { get; set; }
public List<Worker> Workers => this.Dm.Worker.GetList().FindAll(x => x.DepartmentId == this.Id);
public Department ParentDepartment => this.Dm.Department.GetItem(this.ParentId);
public List<Department> ChildDepartments =>
Необходимо получить список дочерних подразделений (Связаны через ParentId) с помощью Linq. Я так понимаю здесь необходимо применить рекурсию и можно ли это сделать через свойство или придется создавать функцию? Буду благодарен за любую помощь.
Разобрался. Мне помог вот этот вопрос на англоязычном StackOverFlow https://stackoverflow.com/questions/41608665/linq-recursive-parent-child
А именно, добавил метод расширения для Enumerable, чтобы работать с рекурсией.
public static class EnumerableExtensions
{
public static IEnumerable<T> SelectRecursive<T>(this IEnumerable<T> source, Func<T, IEnumerable<T>> selector)
{
foreach (var parent in source)
{
yield return parent;
var children = selector(parent);
foreach (var child in SelectRecursive(children, selector))
yield return child;
}
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Имеется массив с timestamp-ми примерно с прошлого года (когда добавлялись пользователи)Надумала сделать статистику, но не пойму как можно день...
Есть база данных где есть 5 строк, каждая запись из бд идет на сайт в каждый фиелдсет, но когда нажимаю
проблема такова есть сайт , в нем категории , ссылка выглядит таким siteru/category-/category-b/category-c/postname, нужно чтобы она была вида site