У меня есть объект под названием Category, который содержит объект IEnumerable под названием ChildCategories. Категория может иметь эти дочерние категории, которые могут иметь свои собственные дочерние категории и т. Д.
Допустим, я выбрал родительскую категорию верхнего уровня, я хочу получить все дочерние категории и их дочерние категории и так далее, чтобы у меня было все иерархические дочерние элементы категории. Я хочу, чтобы это было польщено и вернулось с исходной категорией. Я пробовал создать что-то вроде
public static IEnumerable<T> AllChildren<T>(this IEnumerable<T> items,
Func<T, IEnumerable<T>> children, bool includeSelf)
{
foreach (var item in items)
{
if (includeSelf)
{
yield return item;
}
if (children != null)
{
foreach (var a in children(item))
{
yield return a;
children(a).AllChildren(children, false);
}
}
}
}
, которое будет скучно после использования метода SelectMany, но не совсем понял.