Question

J'ai une simple classe définie comme:

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

Je Dans une autre classe une liste du type ci-dessus. En ce moment, je vais avoir un bloc mental grave. Je dois juste itereate la liste et compter toutes les occurences de MyClass. Étant donné que la propriété peut contenir 0 sous-entrées ou plusieurs entrées qui peuvent se contenir 0 ou plusieurs entrées, il me semble que je besoin d'une sorte de méthode recursice, à moins que LINQ fournit un mécanisme pour le faire.

Toute aide libérant cette embâcle mentale serait apprécié.

Était-ce utile?

La solution

En supposant que vous ne me dérange pas récursion l'arbre, et en supposant que la liste est toujours non nul et ne pas cycles:

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

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

Vous pouvez le renommer afin qu'il soit clair, il est un total nombre de sous-entrées, pas d'enfants seulement immédiats.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top