Как проверить, есть ли у родительского элемента дочерние элементы в рекурсивной функции LINQ?
Я делаю рекурсивную функцию LINQ, как описано в этом вопросе:Имитация рекурсии CTE в C #
Мой код выглядит следующим образом:
private static IEnumerable<KeyValuePair<int, int>> getNet(List<DataRow> list, int? leader, int level)
{
return list
.Where(x => x.Field<int?>("LeaderID") == leader)
.SelectMany(x =>
new[] {
new KeyValuePair<int, int>(x.Field<int>("RepID"), level)
}.Concat(getNet(list, x.Field<int>("RepID"), level+ 1))
);
}
Я хотел бы проверить, есть ли у родителей дети, прежде чем снова войти в функцию, потому что каждый ребенок снова оценивается, и это отнимает много времени.
Т.е. у родителя А 5000 детей, но только у 5 из них есть дети, мне нужно кое-что проверить, если у детей А есть дети, прежде чем выполнять функцию для всех из них.
Спасибо!