Como validar se um item pai tem filhos na função LINQ recursiva?
Eu estou fazendo uma função LINQ recursiva, conforme descrito na pergunta:Simulando a recursão de CTE em C #
Meu código é o seguinte:
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))
);
}
Eu gostaria de validar se um pai tem filhos antes de entrar na função novamente porque cada filho é avaliado novamente e isso consome muito tempo.
Ou seja, o pai A tem 5.000 filhos, mas apenas 5 deles têm filhos, eu preciso de algo para validar se os filhos de A têm filhos antes de executar a função para todos eles.
Obrigado!