在VB.NET中使用Linq展平分层数据

时间:2012-08-22 15:03:55

标签: linq

鉴于以下结构:

Public Class Vendor
    Public Property Accounts As Account()
End Class

Public Class Account
    Public Property Services As Service()
End Class

Public Class Service
    Public Property Name As String
End Class

如果给出一个供应商,我如何在所有帐户中获得所有包含服务的单一列表?这是我到目前为止所尝试的:

vendor.Accounts.Select(Function(acct) acct.Services) 'Returns a collection of services collections

我知道我只是错过了一个明显的操作员。

1 个答案:

答案 0 :(得分:3)

您正在寻找SelectMany。

vendor.Accounts.SelectMany(Function(acct) acct.Services)

如果你只想要唯一的那个,那就打一个.Distinct()吧。