假设我有:
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
但是我想有一种更好的方法,可以在整个课程中真正做到迭代。
答案 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