コレクションとは
コレクションとは各種データの集合を扱うものです。配列もそのひとつに含めることもありますが、配列は固定長(長さを変更することも出来るがそれ用のメソッドを使用する必要があります)
コレクションにはリスト、セット、ディクショナリがあります。
リスト
リストはデータを可変長で操作します。インデックスを指定することでデータの参照、更新、削除が可能です。
セット
セットとはリストとは異なり、要素の重複が出来ません。たとえて言うならば、数学の集合を思い浮かべて貰えればいいです。
ディクショナリ
ディクショナリはキーと要素を併せ持つデータ型です。重複するキーをひとつのディクショナリに登録することは出来ません。
ジェネリック構文
ジェネリックとは一言で言ってしまえば、汎用的なデータ型を特定の型に対応するために必要になります。昔(ジェネリックという概念がない)であれば
List list = new List();//汎用型のListを宣言する
list.Add(123);//0番目に数値の123を追加する
list.Add("abc");//1番目に文字列のabcを追加する
int ret1= (int)list[0];//数値123を明示的にキャストして取り出す
string ret2 = (string)list[1];//abcという文字列を明示的にキャストして取り出す
と書く必要がありました。Listクラスは汎用型ですので、どんな型も取り扱えます。中身はObject型なので取り出すときには適切なキャストが必要です。
これでは不便ということでジェネリック構文が生まれました。ひとつのリストに複数の型のデータを混在しないようにするため、
using System.Collections.Generic;
List<string> list = new List<string>();//string型でのみ構成されるListクラス
list.Add("abc");//slitは文字列を受け取れるのでlistにabcを格納する
list.Add(0);//0は文字列ではなく数値なのでこの時点でコンパイルエラー
string ret1 = list[0];
List<string> list= new List<string>();のように使用しようとしているListがどんな型を受け取ればいいのかを明記することで統一します。
ジェネリック構文を用いる際にはソースコードの最上部に「using System.Collections.Generic;」を宣言します。
まとめ
コレクションとは様々なデータ型をまとめて使用したい時に使用します。
そして複数のデータの取扱に応じてリスト、セット、ディクショナリがありました。
現在ではいずれもジェネリックというデータの型を強制させる事が出来ます。
次からはリスト、セット、ディクショナリについてもう少し深く説明していきます。
コメント