Pregunta

Tengo una clase simple definida como:

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

En otra clase Tengo una lista del tipo anterior. Por el momento, estoy teniendo un bloqueo mental grave. Sólo necesito itereate por la lista y contar todas las apariciones de MiClase. Dado que la propiedad subentradas puede contener 0 o más entradas que a su vez puede contener 0 o más entradas, se me ocurre que necesito algún tipo de método recursice, a menos que LINQ proporciona un mecanismo para hacer esto.

Cualquier ayuda la liberación de este atasco del registro mental, sería apreciada.

¿Fue útil?

Solución

Si se asume que no le importa recursivamente el árbol, y suponiendo que la lista es siempre no nulo y no tiene ciclos:

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

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

Es posible que desee cambiar su nombre por lo que está claro que es un Total recuento de entradas secundarias, los niños no sólo inmediatas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top