
Namespace System
Namespace Collections
Namespace Generic

Interface IEnumerable<T>
	' Method
	Function GetEnumerator () As IEnumerator<T>
End Interface

Interface IEnumerator<T>
	' Methods
	Function MoveNext () As Boolean
	Sub Reset()
	' Property
	Function Current () As T
End Interface


Class ICollection<T>
	Implements IEnumerable<T>, IEnumerator<T>
Public
	' Property
	Virtual Function Count() As Long
	End Function
	Virtual Function IsReadOnly() As Boolean
	End Function

	' Methods
	Virtual Sub Add ( item As T )
	End Sub
	Virtual Sub Clear ()
	End Sub
	Virtual  Function Contains ( item As T ) As Boolean
	End Function
	Virtual Sub CopyTo (ByRef array As List<T>, arrayIndex As Long )
	End Sub
	Virtual Function Remove ( item As T ) As Boolean
	End Function
End Class


Class IList<T>
	Inherits ICollection<T>
Public
	' Property
	Virtual Sub Operator[] ( index As Long, item As T )
	End Sub
	Virtual Function Operator[] ( index As Long ) As T
	End Function
	' Methods
	Virtual Function Item ( index As Long ) As T
	End Function
	Virtual Function IndexOf ( item As T ) As Long
	End Function
	Virtual Sub Insert ( index As Long, item As T )
	End Sub
	Virtual Sub RemoveAt( index As Long )
	End Sub
End Class

End Namespace
End Namespace
End Namespace
