我有一个Pump类型的对象列表,每个对象都包含对Valve类型对象的引用,通过其属性Valve公开。
Public Class Pump
Private _valve As Valve 'may be Nothing
Public ReadOnly Property Valve() As Valve
Get
Return _valve
End Get
End Property
End Class
然而,阀门可以存在或只是没有。
有一种简单的方法可以选择所有阀门并将它们列入清单吗?
我试过了:
_pumps.Select(Of Valve)(Function(p As Pump) p.Valve).ToList
但是我得到一个列表,其中一些物体是Nothing,因为没有阀门与相应的泵相对应。
我终于做到了:
Dim valves As New List(Of Valve)
For Each p As PumpIn _pumps
If p.Valve IsNot Nothing Then
valves.Add(p.Valve)
End If
Next
但我想知道是否有更紧凑的方式:
谢谢!
答案 0 :(得分:3)
我认为以下内容会有所帮助:
_pumps.Where(Function(p) p.Valve IsNot Nothing).Select(Of Valve)(Function(p As Pump) p.Valve).ToList