C# のコレクションの種類

C# のコレクションの分類

C# のコレクションには大きく分けて次の3種類があります。

  • ジェネリック (System.Collections.Generic) クラス
  • コンカレント (System.Collections.Concurrent) クラス
  • システム・コレクション (System.Collections) クラス

C# のジェネリック (System.Collections.Generic) クラス

ジェネリックコレクションクラス (System.Collections.Generic クラス) は、同じ型のコレクションを作成する場合に使います。

表. 主なジェネリッククラス
クラス 説明
Dictionary<TKey, TValue> キー・値ペアのコレクション
List<T> 要素にインデックスアクセス可能なコレクション
Queue<T> FIFO のコレクション
Stack<T> LIFO のコレクション

C# のコンカレント・コレクション (System.Collections.Concurrent) クラス

System.Collections.Concurrent 名前空間以下にあるコレクションクラスは、スレッドセーフに利用できます。 マルチスレッドプログラムではジェネリッククラスの代わりに、System.Collections.Concurrent 名前空間にあるクラスを使用します。

クラス名は、通常の Dictionary クラスに対応して、今カレントクラスの ConcurrentDictionary クラスがあるといったように、 Concurrent という名前が付いています。

C# のシステムコレクション (System.Collections) クラス

システムコレクションクラスは System.Collections 名前空間以下にあるクラスで、Object のコレクションを保持します。

表. 主なシステムコレクションクラス
クラス 説明
ArrayList 可変サイズの配列
Hashtable ハッシュテーブル
Queue オブジェクトの FIFO のコレクション
Stack オブジェクトの LIFO のコレクション

マイクロソフトの資料では、同一型のオブジェクトのコレクションにはジェネリック・コレクションを利用すべきであり、 新しいプロジェクトで System.Collections 名前空間のコレクションクラスを使うことは推奨されていません。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 C# 入門