C#

C# ジェネリック コレクションを操作する(ICollectionインターフェース)

以前「C# コレクションクラスを自作してみる(1/2)」でも紹介していますが、今回は、このICollectionクラスの基本について書きます。

 

説明

MSDNなどでは、「ジェネリック コレクションを操作するメソッドを定義します」と書かれています。
ポイントは、「ジェネリック コレクションを操作する」インターフェースクラスということです。

実装から見た「操作」は

  • 項目の数を知る
  • 項目を追加する
  • 項目を全削除(クリア)する
  • 項目を削除する
  • 項目に一致するものがあるかをチェックする

で、他は追加の操作という位置づけです。

 

ICollection<T>のプロパティ

 

int Count コレクションが保持している項目の数を返します。
bool IsReadOnly このコレクションが読み取り専用かどうかを返します。
読み取り専用の場合はtrueを返します。

 

ICollection<T>のメソッド

このICollection<T>と書いている’T’ですが、これはコレクションが取り扱う項目の型で、実装ではTの部分がintやdouble、stringなどの型(自作のクラスも指定できます)になります。

 

void Add(T item) このコレクションの item を追加します。
void Clear() このコレクションの項目をすべて削除します。
bool Contains(T item) このコレクションに item に一致する項目が格納されているかを判断します。
void CopyTo(T[] array, int arrayIndex) arrayIndex で指定したインデックスから配列 array に項目のコピーを格納して返します。
bool Remove(T item) このコレクション中の item に一致する最初の項目を削除します。

 

インターフェースクラス

今回のICollection<T>などは、classではなくinterfaceで宣言されており、ICollection<T>でインスタンスを生成したりすることはありません。

実装はこの派生クラスで行うことになります。

詳しくは、「C# コレクションクラスを自作してみる(1/2)」や、「C# コレクションクラスを自作してみる(2/2)」を参考にしてみてください。

タイトルとURLをコピーしました