Custom Collection

  • Thread starter Thread starter Mythran
  • Start date Start date
M

Mythran

I'm trying to create a custom collection for educational purposes only for now.

I want to implement the IEnumerable interface but don't know what I'm doing with
it. How to I create/get/return the expected value for the implemented
GetEnumerator() function? I know the value expected is an IEnumerator, but what
is it? Basically, I would like a nice, clean example to follow and learn from.

Thanks :)

Haven't had much time to do any "real" searches for it on Google...trying here
first as a quick-start...hopefully t'is all I need.

Mythran
 
Mythran said:
I'm trying to create a custom collection for educational purposes only for now.

I want to implement the IEnumerable interface but don't know what I'm doing with
it. How to I create/get/return the expected value for the implemented
GetEnumerator() function? I know the value expected is an IEnumerator, but what
is it? Basically, I would like a nice, clean example to follow and learn from.

Thanks :)

Haven't had much time to do any "real" searches for it on Google...trying here
first as a quick-start...hopefully t'is all I need.

Mythran

I think I figured it out....

Public Class MyCollectionEnumerator
Implements IEnumerator

#Region " Private Members "
' ==========================================================================
' Private Members
' ==========================================================================
Private mItems As MyItem() = Nothing
Private mIndex As Integer = -1
#End Region

#Region " Public Constructors / Destructors "
' ==========================================================================
' Public Constructors / Destructors
' ==========================================================================
Public Sub New(ByVal Items As MyItem())
mItems = Items
End Sub
#End Region

#Region " Public Properties "
' ==========================================================================
' Public Properties
' ==========================================================================
Public ReadOnly Property Current() As Object Implements
System.Collections.IEnumerator.Current
Get
Return mItems(mIndex)
End Get
End Property
#End Region

#Region " Public Methods "
' ==========================================================================
' Public Methods
' ==========================================================================
Public Function MoveNext() As Boolean Implements
System.Collections.IEnumerator.MoveNext
mIndex += 1
Return (mIndex > mItems.Length OrElse Not mItems(mIndex) Is Nothing)
End Function

Public Sub Reset() Implements System.Collections.IEnumerator.Reset
mIndex = -1
End Sub
#End Region
End Class


It works :) ANything anyone sees as being wrong?

Mythran
 
Back
Top