vb.net - 如何遍历具有子类别列表的类(类别)?即列表(类别)
问题描述
假设我有:
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
但我猜有一种更好的方法,可以真正在整个课程中进行迭代。
解决方案
递归,对。谢谢你,杰姆西林尼。
这是我的选择:
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
推荐阅读
- data-distribution-service - DDS协议可以用于连接到不同网络的设备之间进行通信吗?如何?
- ssl - 如何在 PostgreSQL 9.4 中配置 SSL 证书?
- ios - PickerView 已禁用且在 SwiftUI 中不起作用
- adsense - Google AdSense ERR_ADDRESS_INVALID
- discord - 如何让机器人向每个服务器成员发送消息
- opencv - 在 OpenCV 中将深度图像从毫米转换为米
- kubernetes - Kubernetes 中的入口 nginx 路由(使用 nginx 反向代理从 docker-compose 转换)
- java - 401- 从 Spring Boot 应用程序使用 REST API Dynamics CRM 和 Azure AD 进行未经授权的身份验证
- c# - 使用不工作的 Visual Studio 2019 自动导入
- html - Mat tab last child - 只影响一个组而不影响组件中的所有其他组?