Generic collection works but has quirks
This test collection uses what could be called an "inner list." One quirk is that the ADD uses the InsertItem routine in the test class instead of the default (internal) .Add shown by debugging. INSERT uses the class InsertItem as expected. But INDEXOF does not use the class IndexOf and it returns -1 even though the "December" item is in the collection.
Public Class WinterMonth
Private _monthOf As String
Public Property MonthOf() As String
Get
Return _monthOf
End Get
Set (ByVal value as String)
_monthOf = value
End Set
End Property
Public Sub New(ByVal monthOf As String)
Me.MonthOf = monthOf
End Sub
End Class
Public Class WinterMonths(Of T)
Inherits Collection(Of T)
Protected Overrides Sub InsertItem(ByVal index As Integer, ByVal item As T)
MyBase.InsertItem(index,item)
End Sub
Protected Overloads Sub IndexOf(ByVal item as T)
MyBase.IndexOf(item)
End Sub
End Class
Protected Sub Page_Load etc.
Dim winter As New WinterMonths(Of WinterMonth)
winter.Add(New WinterMonth("January"))
winter.Insert(0, New WinterMonth("December"))
winter.Add(New WinterMonth("February"))
winter.Insert(winter.Count, New WinterMonth("March"))
Dim idx = winter.IndexOf(New WinterMonth("December"))
monthlist.DataSource = winter
monthlist.DataValueField = "MonthOf"
monthlist.DataBind()
End Sub
|