source: trunk/ab5.0/ablib/src/Classes/System/Collections/ObjectModel/Collection.ab@ 619

Last change on this file since 619 was 619, checked in by NoWest, 16 years ago

Collection<T>クラス系は一応の完成ですが、briefはまだ書いてません。

File size: 4.5 KB
Line 
1
2Namespace System
3Namespace Collections
4Namespace ObjectModel
5
6
7Class Collection<T>
8 Implements Generic.IList<T>
9 list As Generic.IList<T>
10
11Public
12 'Collection クラスの新しいインスタンスを初期化します。
13 Sub Collection ()
14 This.list = New Generic.List<T>
15 End Sub
16 Sub Collection ( list As Generic.IList<T> )
17 This.list = list
18 End Sub
19
20Public
21 'Collection に実際に格納されている要素の数を取得します。
22 Override Function Count () As Long
23 Return This.list.Count()
24 End Function
25
26 'Item 指定したインデックスにある要素を取得または設定します。
27 Sub Operator[] ( index As Long, item As T )
28 This.SetItem(index,item)
29 End Sub
30 Function Operator[] ( index As Long ) As T
31 Return This.list.Item(index)
32 End Function
33
34Protected
35 'Collection をラップする IList ラッパーを取得します。
36 Function Items () As Generic.IList<T>
37 Return This
38 End Function
39
40Public
41 'Collection の末尾にオブジェクトを追加します。
42 Override Sub Add ( item As T )
43 This.list.Add(item)
44 End Sub
45
46 'Collection からすべての要素を削除します。
47 Override Sub Clear ()
48 This.ClearItems()
49 End Sub
50
51 'ある要素が Collection 内に存在するかどうかを判断します。
52/* Function Contains ( item As T ) As Boolean
53 End Function*/
54
55 'Collection 全体を互換性のある 1 次元の Array にコピーします。コピー操作は、コピー先の配列の指定したインデックスから始まります。
56 /*CopyTo*/
57
58 'Collection を反復処理する列挙子を返します。
59 Override Function GetEnumerator () As Generic.IEnumerator<T>
60 Return This.Items().GetEnumerator()
61 End Function
62
63 '指定したオブジェクトを検索し、Collection 全体内で最初に見つかった位置の 0 から始まるインデックスを返します。
64 Override Function IndexOf ( item As T ) As Long
65 Return This.list.IndexOf(item)
66 End Function
67
68 'Collection 内の指定したインデックスの位置に要素を挿入します。
69 Override Sub Insert ( index As Long, item As T )
70 This.InsertItem(index,item)
71 End Sub
72
73 'IList が読み取り専用かどうかを示す値を取得します。
74 Override Function IsReadOnly () As Boolean
75 Return False
76 End Function
77
78 'Collection 内で最初に見つかった特定のオブジェクトを削除します。
79 Override Function Remove ( item As T ) As Boolean
80 Return This.RemoveItem(This.IndexOf(item))
81 End Function
82
83 'Collection の指定したインデックスにある要素を削除します。
84 Override Sub RemoveAt ( index As Long )
85 This.RemoveItem(index)
86 End Sub
87
88 '現在の Object を表す String を返します。 (Object から継承されます。)
89 Override Function ToString () As String
90 Dim string = New Text.StringBuilder
91 Dim i As Long
92 For i = 0 To ELM(This.list.Count())
93 string.Append(This.list.Item[i]).Append(Ex"\r\n")
94 Next
95 Return string.ToString
96 End Function
97
98Protected
99 'Collection からすべての要素を削除します。
100 Virtual Sub ClearItems ( )
101 This.list.Clear()
102 End Sub
103
104 'Collection 内の指定したインデックスの位置に要素を挿入します。
105 Virtual Sub InsertItem ( index As Long, item As T )
106 This.list.Insert(index,item)
107 End Sub
108
109 'Collection の指定したインデックスにある要素を削除します。
110 Virtual Function RemoveItem ( index As Long ) As Boolean
111 This.list.RemoveAt(index)
112 End Function
113
114
115 '指定したインデックス位置にある要素を置き換えます。
116 Virtual Sub SetItem ( index As Long, item As T )
117 This.list.Item(index,item)
118 End Sub
119
120
121Public
122 /*
123System.Collections.ICollection.CopyTo ICollection の要素を Array にコピーします。Array の特定のインデックスからコピーが開始されます。
124System.Collections.IEnumerable.GetEnumerator コレクションを反復処理する列挙子を返します。
125System.Collections.IList.Add IList に項目を追加します。
126System.Collections.IList.Contains IList に特定の値が格納されているかどうかを判断します。
127System.Collections.IList.IndexOf IList 内での指定した項目のインデックスを調べます。
128System.Collections.IList.Insert IList 内の指定したインデックスの位置に項目を挿入します。
129System.Collections.IList.Remove IList 内で最初に見つかった特定のオブジェクトを削除します。
130System.Collections.Generic.ICollection<T>.IsReadOnly ICollection が読み取り専用かどうかを示す値を取得します。
131System.Collections.ICollection.IsSynchronized ICollection へのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。
132System.Collections.ICollection.SyncRoot ICollection へのアクセスを同期するために使用できるオブジェクトを取得します。
133System.Collections.IList.IsFixedSize IList が固定サイズかどうかを示す値を取得します。
134System.Collections.IList.IsReadOnly IList が読み取り専用かどうかを示す値を取得します。
135 */
136End Class
137
138End Namespace
139End Namespace
140End Namespace
Note: See TracBrowser for help on using the repository browser.