3

采取以下场景:

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 获得区域的总数

还是我需要遍历每个区域并计算货架的数量?

4

2 回答 2

6

在 C# 中:

int count = Store.Areas.SelectMany(x => x.Shelves).Count();

转换为 VB:

Dim count = Store.Areas.SelectMany(Function(x) x.Shelves).Count()

(使用在线转换器,而不是 VB 人)

于 2012-04-05T14:52:59.663 回答
2

使用此 LINQ 表达式

Dim count As Integer = store.Areas.Sum(Function(a) a.Shelves.Count())

请注意,这与@BrokenGlass 的回答不同。他首先将嵌套集合展平SelectMany,然后计算结果项目的总数,即他循环遍历项目的总数。因为我只循环外部集合并对Count内部集合的属性求和。这应该快得多。

于 2012-04-05T15:03:02.053 回答