如何遍历具有子类别列表的类(类别)?即列表(类别)

时间:2019-01-10 02:14:23

标签: vb.net

假设我有:

Public Class Category

Public subCategories As List(Of Category)
Public products As List(Of Product)

End Class

以及该类的一个实例,称为allCategories。子类别列表内的每个类别实例可能会(也可能不会)具有其他子类别,并且可能会或可能不会具有项目,因为这些项目可能嵌套在其他子类别中。

我的问题:如何创建一个列表(产品),其中包括所有类别中每个类别的每个项目?

我当然可以说

For Each category In allCategories
...
   For Each subCat In category
   ...
      For Each furtherSubCat In subCat
      ...
         For Each evenFurtherSubCat In furtherSubCat

但是我想有一种更好的方法,可以在整个课程中真正做到迭代。

1 个答案:

答案 0 :(得分:0)

递归,对。谢谢你,jmcilhinney。

这就是我的目的:

 Function GetAllProducts() As List(Of Product)

        Dim list As List(Of Product) = New List(Of Product)()

        For Each Product In Products
            list.Add(Product)
        Next

        For Each category In subCategories
            For Each Product In category.GetAllProducts()
                list.Add(Product)
            Next
        Next

        Return list

    End Function