Index: trunk/ab5.0/ablib/src/Classes/System/Collections/Generic/List.ab
===================================================================
--- trunk/ab5.0/ablib/src/Classes/System/Collections/Generic/List.ab	(revision 619)
+++ trunk/ab5.0/ablib/src/Classes/System/Collections/Generic/List.ab	(revision 631)
@@ -80,5 +80,6 @@
 	@author	NoWest
 	@date	2008/07/13
-	@param	インデックス
+	@param	基になる配列へのポインタ
+	@param	配列の長さ
 	*/
 	Sub List( array As *T, length As Long )
@@ -87,4 +88,17 @@
 		memmove( This.items, array, length * SizeOf(T) )
 		This.count = length
+	End Sub
+
+	/*!
+	@brief	既存のIEnumerator<T>使用してListを初期化
+	@author	NoWest
+	@date	2008/09/22
+	@param	基になるIEnumerator<T>
+	*/
+	Sub List ( enumerator As IEnumerator<T> )
+		_Initialize( 1 )
+		While enumerator.MoveNext()
+			'This.Add(enumerator.Current())
+		Wend
 	End Sub
 
@@ -185,5 +199,12 @@
 	End Sub
 
-'	Function AsReadOnly() As ReadOnlyCollection
+	/*!
+	@brief	読み取り専用のListのラッパーを取得
+	@author	NoWest
+	@date	2008/09/22
+	*/
+	Function AsReadOnly() As System.Collections.ObjectModel.ReadOnlyCollection<T>
+		Return New System.Collections.ObjectModel.ReadOnlyCollection<T>(This)
+	End Function
 
 	/*!
Index: trunk/ab5.0/ablib/src/Classes/System/Collections/Generic/Queue.ab
===================================================================
--- trunk/ab5.0/ablib/src/Classes/System/Collections/Generic/Queue.ab	(revision 619)
+++ trunk/ab5.0/ablib/src/Classes/System/Collections/Generic/Queue.ab	(revision 631)
@@ -15,15 +15,26 @@
 	End Sub
 
+	Sub initialize()
+		This.items = GC_malloc(1)
+	End Sub
+
 Public
 	Sub Queue ()
-		This.items = GC_malloc( 1 )
+		This.initialize()
 	End Sub
 
 	Sub Queue ( capacity As Long )
-		This.items = GC_malloc( 1 )
+		This.initialize()
 		If capacity > 0 Then
 			This.size = capacity
 			Realloc(capacity)
 		End If
+	End Sub
+
+	Sub Queue ( enumerator As IEnumerator<T> )
+		This.initialize()
+		While enumerator.MoveNext()
+			This.Enqueue(enumerator.Current())
+		Wend
 	End Sub
 
Index: trunk/ab5.0/ablib/src/Classes/System/Collections/Generic/Stack.ab
===================================================================
--- trunk/ab5.0/ablib/src/Classes/System/Collections/Generic/Stack.ab	(revision 619)
+++ trunk/ab5.0/ablib/src/Classes/System/Collections/Generic/Stack.ab	(revision 631)
@@ -15,15 +15,25 @@
 	End Sub
 
+	Sub initialize()
+		This.items = GC_malloc(1)
+	End Sub
 Public
 	Sub Stack ()
-		This.items = GC_malloc( 1 )
+		This.initialize()
 	End Sub
 
 	Sub Stack ( capacity As Long )
-		This.items = GC_malloc( 1 )
+		This.initialize()
 		If capacity > 0 Then
 			This.size = capacity
 			Realloc(capacity)
 		End If
+	End Sub
+
+	Sub Stack ( enumerator As IEnumerator<T> )
+		This.initialize()
+		While enumerator.MoveNext()
+			This.Push(enumerator.Current())
+		Wend
 	End Sub
 
Index: trunk/ab5.0/ablib/src/Classes/System/Collections/ObjectModel/ReadOnlyCollection.ab
===================================================================
--- trunk/ab5.0/ablib/src/Classes/System/Collections/ObjectModel/ReadOnlyCollection.ab	(revision 619)
+++ trunk/ab5.0/ablib/src/Classes/System/Collections/ObjectModel/ReadOnlyCollection.ab	(revision 631)
@@ -6,13 +6,14 @@
 
 Class ReadOnlyCollection<T>
-	Implements Generic.IList<T>
-	list As Generic.IList<T>
+	Implements System.Collections.Generic.IList<T>
+	list As System.Collections.Generic.IList<T>
 
 Public
 	'Collection クラスの新しいインスタンスを初期化します。 
 	Sub ReadOnlyCollection ()
-		This.list = New Generic.List<T>
+		Dim l = New System.Collections.Generic.List<T>
+		This.list = l
 	End Sub
-	Sub ReadOnlyCollection ( list As Generic.IList<T> )
+	Sub ReadOnlyCollection ( list As System.Collections.Generic.IList<T> )
 		This.list = list
 	End Sub
@@ -35,5 +36,5 @@
 	'Collection をラップする IList ラッパーを取得します。 
 	Function Items () As Generic.IList<T>
-		Return list
+		Return This
 	End Function
 
@@ -57,5 +58,5 @@
 
 	'Collection を反復処理する列挙子を返します。 
-	Override Function GetEnumerator () As Generic.IEnumerator<T>
+	Override Function GetEnumerator () As System.Collections.Generic.IEnumerator<T>
 		Return This.list.GetEnumerator()
 	End Function
