给出以下类结构:
(编辑:将有超过2个派生类,为简单起见,我只列出了2个)
我将以下属性添加到MyList,尝试回答诸如“找出具有指定类型的元素数量,例如Derived1,在MyList中?”的问题。
Public Overloads ReadOnly Property Count(ByVal objType As System.Type) As Integer
Get
Dim cnt As Integer = 0
For Each o As Object In Me
If (o IsNot Nothing) And (o.GetType.Equals(objType)) Then cnt += 1
Next
Return cnt
End Get
End Property
Q1:还有什么需要改进的吗?如果是,请告知。
提前致谢
答案 0 :(得分:0)
如果您使用.NET 3.5,可以使用Linq:
Dim myList As MyList;
...
Dim count = myList.OfType(Of Derived1).Count();
根本不需要添加属性。