Index: /trunk/ab5.0/ablib/src/Classes/System/Collections/Generic/List.ab
===================================================================
--- /trunk/ab5.0/ablib/src/Classes/System/Collections/Generic/List.ab	(revision 674)
+++ /trunk/ab5.0/ablib/src/Classes/System/Collections/Generic/List.ab	(revision 675)
@@ -56,8 +56,10 @@
 	End Sub
 
-	Sub SetLeastCapacity( capacity As Long )
-		If This.capacity < capacity Then
-			Realloc(capacity)
-		End If
+	Sub SetLeastCapacity( leastCapacity As Long )
+		Dim c = This.capacity
+		While c < leastCapacity
+			c *= 2
+		Wend
+		Realloc(c)
 	End Sub
 Public
@@ -91,14 +93,14 @@
 
 	/*!
-	@brief	既存のIEnumerator<T>を使用してListを初期化
+	@brief	既存のIEnumerable<T>を使用してListを初期化
 	@author	NoWest
 	@date	2008/09/22
-	@param	基になるIEnumerator<T>
-	*/
-	Sub List ( enumerator As IEnumerator<T> )
+	@param	基になるIEnumerable<T>
+	*/
+	Sub List ( enumerable As IEnumerable<T> )
 		_Initialize( 1 )
-		While enumerator.MoveNext()
-			'ここでTをByetに変換できないというエラーになる This.Add(enumerator.Current())
-		Wend
+		Foreach e In enumerable
+'			This.Add(e)
+		Next
 	End Sub
 
@@ -146,4 +148,14 @@
 	End Function
 
+	/*!
+	@brief	内部の配列へのポインタを取得する
+	@auther	Egtra
+	@date	2009/01/13
+	@retrun	内部の配列へのポインタ
+	@pre	Count <> 0
+	*/
+	Function Data() As *T
+		Return items
+	End Function
 
 	'----------------------------------------------------------------
@@ -217,7 +229,12 @@
 	End Sub
 
-/*	Override Function Contains ( item As T ) As Boolean
-		TODO
-	End Function*/
+	/*!
+	@brief	Listに指定された要素が含まれるか調べる
+	@author	Egtra
+	@date	2009/01/13
+	*/
+	Function Contains ( item As T ) As Boolean
+		Return IndexOf(item) >= 0
+	End Function
 
 	/*!
