Index: trunk/Include/Classes/System/Collections/ArrayList.ab
===================================================================
--- trunk/Include/Classes/System/Collections/ArrayList.ab	(revision 381)
+++ trunk/Include/Classes/System/Collections/ArrayList.ab	(revision 386)
@@ -7,5 +7,5 @@
 
 Class ArrayList
-	Implements IList /*, ICollection, IEnumerable, ICloneable*/
+	'Implements IList /*, ICollection, IEnumerable, ICloneable*/
 
 	pObject As *Object
@@ -76,9 +76,9 @@
 	End Function
 
-	/*Const*/ Override Function IsFixedSize() As Boolean
+	/*Const*/ Function IsFixedSize() As Boolean
 		Return False
 	End Function
 
-	/*Const*/ Override Function IsReadOnly() As Boolean
+	/*Const*/ Function IsReadOnly() As Boolean
 		Return False
 	End Function
@@ -219,5 +219,5 @@
 	End Function
 
-	/*Const*/ Override Function IndexOf(object As Object) As Long
+	/*Const*/ Function IndexOf(object As Object) As Long
 		Return IndexOf(object, 0, size)
 	End Function
@@ -238,5 +238,5 @@
 	End Function
 
-	Override Sub Insert(i As Long, object As Object)
+	Sub Insert(i As Long, object As Object)
 		SetLeastCapacity(size + 1)
 		memmove(VarPtr(pObject[i + 1]), VarPtr(pObject[i]), SizeOf (*Object) * (size - i))
@@ -261,5 +261,5 @@
 	End Function
 
-	Override Sub Remove(object As Object)
+	Sub Remove(object As Object)
 		Dim i = IndexOf(object)
 		If i > 0 Then
@@ -268,5 +268,5 @@
 	End Sub
 
-	Override Sub RemoveAt(i As Long)
+	Sub RemoveAt(i As Long)
 		RemoveRange(i, 1)
 	End Sub
@@ -307,5 +307,5 @@
 	End Sub
 
-	/*Override*/ Override Function ToString() As String
+	Override Function ToString() As String
 		Return "System.Collections.ArrayList"
 	End Function
Index: trunk/Include/Classes/System/Collections/Generic/List.ab
===================================================================
--- trunk/Include/Classes/System/Collections/Generic/List.ab	(revision 381)
+++ trunk/Include/Classes/System/Collections/Generic/List.ab	(revision 386)
@@ -5,6 +5,9 @@
 
 Class List<T>
+	Implements IEnumerable, IEnumerator
 	items As *T
 	size As Long
+
+	currentIndexForEnumerator As Long
 
 	Sub Realloc( allocateSize As Long )
@@ -125,4 +128,49 @@
 		size--
 	End Sub
+
+	/*!
+	@brief	IEnumeratorインターフェイスを取得する
+	@author	Daisuke Yamamoto
+	@date	2007/11/19
+	@return	IEnumeratorインターフェイスが返る
+	*/
+	Function GetEnumerator() As IEnumerator
+		Return This
+	End Function
+
+	/*!
+	@brief	イテレータのカレントインデックスを増加させる
+	@author	Daisuke Yamamoto
+	@date	2007/11/19
+	@return	上限に達していなければTrueが、達していればFalseが返る
+	*/
+	Function MoveNext() As Boolean
+		If currentIndexForEnumerator >= size Then
+			' 上限に達した
+			Return False
+		End If
+
+		currentIndexForEnumerator ++
+		Return True
+	End Function
+
+	/*!
+	@brief	イテレータをリセットする
+	@author	Daisuke Yamamoto
+	@date	2007/11/19
+	*/
+	Sub Reset()
+		currentIndexForEnumerator = 0
+	End Sub
+
+	/*!
+	@brief	イテレータのカレントオブジェクトを取得する
+	@author	Daisuke Yamamoto
+	@date	2007/11/19
+	@return	カレントオブジェクトが返る
+	*/
+	Function Current() As Object
+		Return items[currentIndexForEnumerator] As Object
+	End Function
 End Class
 
Index: trunk/Include/Classes/System/Collections/misc.ab
===================================================================
--- trunk/Include/Classes/System/Collections/misc.ab	(revision 381)
+++ trunk/Include/Classes/System/Collections/misc.ab	(revision 386)
@@ -49,5 +49,5 @@
 Interface IEnumerable
 	' Method
-'	Function GetEnumerator() As *IEnumerator
+	Function GetEnumerator() As IEnumerator
 End Interface
 
@@ -57,5 +57,5 @@
 	Sub Reset()
 	' Property
-	Function Current() As *Object
+	Function Current() As Object
 End Interface
 
