
Namespace System
Namespace Collections
Namespace Generic

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

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


Class ICollection<T>
	Implements IEnumerable<T>
Public
	' Property
	Abstract Function Count() As Long
	Abstract Function IsReadOnly() As Boolean

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


Class IList<T>
	Inherits ICollection<T>
Public
	' Property
	Abstract Sub Operator[] ( index As Long, item As T )
	Abstract Function Operator[] ( index As Long ) As T

	Abstract Sub Item ( index As Long, item As T )
	Abstract Function Item ( index As Long ) As T

	Abstract Function IndexOf ( item As T ) As Long
	Abstract Sub Insert ( index As Long, item As T )
	Abstract Sub RemoveAt( index As Long )
End Class

Namespace Details

Interface ICollection<T>
	' Property
	Function Count() As Long
	'/*Const*/ Function IsSynchronized() As Boolean
	' Function SyncRoot() As ...
End Interface

End Namespace


End Namespace
End Namespace
End Namespace
