采取以下方案:
Public Class Store
Public Overridable Property Areas As List(Of Area)
End Class
Public Class Area
Public Overridable Property Shelves As List(Of Shelf)
End Class
Public Class Shelf
Public Property ID as integer
End Class
获得商店货架总数的最快方法是什么? 即对于商店,我使用Areas.Count
获得区域总数或者我是否需要遍历每个区域并统计货架数量?
答案 0 :(得分:5)
在C#中:
int count = Store.Areas.SelectMany(x => x.Shelves).Count();
转换为VB:
Dim count = Store.Areas.SelectMany(Function(x) x.Shelves).Count()
(使用online converter,而不是VB家伙)
答案 1 :(得分:2)
使用此LINQ表达式
Dim count As Integer = store.Areas.Sum(Function(a) a.Shelves.Count())
请注意,这与@BrokenGlass的答案不同。他首先使用SelectMany
展平嵌套集合,然后计算结果项的总数,即他循环遍历项目总数。在哪里我只循环外部集合并总结内部集合的Count
属性。这应该快得多。