首页 > 解决方案 > 如何遍历具有子类别列表的类(类别)?即列表(类别)

问题描述

假设我有:

Public Class Category

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

End Class

以及该类的一个实例,称为 allCategories。子类别列表中的每个类别实例可能有也可能没有进一步的子类别,并且可能有也可能没有项目,因为这些项目可以嵌套在更多的子类别中。

我的问题:如何创建一个 List(Of Product),其中包含 allCategories 中每个类别的每个项目?

我当然可以说

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

但我猜有一种更好的方法,可以真正在整个课程中进行迭代。

标签: vb.net

解决方案


递归,对。谢谢你,杰姆西林尼。

这是我的选择:

 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

推荐阅读