Pergunta

Eu tenho uma classe simples definida como:

public class MyClass
{
   //Some properties
   public List<MyClass> SubEntries { get; set; }
   //Some more properties
}

Em outra classe Eu tenho uma lista do tipo acima. No momento, estou tendo um bloqueio mental sério. Eu só preciso itereate através da lista e contar todas as ocorrências de MyClass. Desde a propriedade Subentries pode conter 0 ou mais entradas que se podem conter 0 ou mais entradas, parece-me que eu preciso de algum tipo de método recursice, a menos que LINQ fornece um mecanismo para fazer isso.

Qualquer ajuda liberar este jam log mentais seria apreciada.

Foi útil?

Solução

Assumindo que você não se importa recursivo para baixo da árvore, e assumindo a lista é sempre não-nulo e não tem ciclos:

public class MyClass
{
    public List<MyClass> SubEntries { get; set; }

    public int SubEntryCount
    {
        get { return 1 + SubEntries.Sum(x => x.SubEntryCount); }
    }
}

Você pode querer mudar o nome para que seja claro que é uma Total contagem de sub-entradas, não apenas filhos imediatos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top