Как-то вы должны сказать VB, что T
имеет свойство CheckBoxes
.Поэтому определите интерфейс, который типы, добавляемые в список, должны реализовывать
Public Interface ICheckBoxes
ReadOnly Property CheckBoxes() As List(Of CheckBox)
End Interface
Public Class ClassWithCkeckBoxes
Implements ICheckBoxes
Private m_CheckBoxes As List(Of CheckBox) = New List(Of CheckBox)
Public ReadOnly Property CheckBoxes() As List(Of CheckBox) Implements ICheckBoxes.CheckBoxes
Get
Return m_CheckBoxes
End Get
End Property
End Class
. Укажите, что T
должен реализовать ICheckBoxes
с параметром типа (Of T As ICheckBoxes)
Class CountCheckBoxes(Of T As ICheckBoxes)
Public Sub Test(ByVal list As List(Of T))
Dim count As Integer = list _
.SelectMany(Function(t) t.CheckBoxes) _
.Count(Function(checkBox) checkBox.Checked)
End Sub
End Class
SelectMany
сглаживает список.Т.е. он преобразует список списка флажков в простой список флажков.