C#で使用できるコレクション型一覧と各コレクションの特徴をまとめました。
コレクション型一覧
すべて、System.Collections.Generic名前空間のクラスです。
コレクション型 | 日本語名 | 特徴 |
---|---|---|
List | リスト | 要素を順番に格納する |
LinkedList | 二重リンクリスト | 要素を双方向のリンクで管理する |
Dictionary | ディクショナリ (連想配列) |
要素をKeyとValueで管理する |
Queue | キュー (待ち行列) |
要素を先入れ先出し法で管理する |
Stack | スタック | 要素を後入れ先出し法で管理する |
HashSet | ハッシュセット | 要素の重複が無い |
各コレクション型の特徴
List型の特徴
- 要素にインデックスを付けて順番に格納したデータ構造
- 読み取りはインデックス番号から直接要素へアクセスできるため高速アクセスができる
- 要素の挿入や削除は、インデックス番号の振直しが必要なため要素が沢山あると遅い
LinkedList型の特徴
- 要素同士を双方向のリンクでつないだデータ構造
- 読み取りは先頭要素から順番に辿る必要があるため、要素がたくさんあると遅い
- 要素の挿入や削除は、対象要素の前後のリンクを替えるだけなので早い
Dictionary型の特徴
- 要素をキーで管理するデータ構造
- キーは重複不可
- キーにオブジェクトを指定することも可能
Queue型の特徴
- 先入れ先出し形式のデータ構造(First In First Out)
- 要素を追加した順番で取り出したい場面で使用される
Stack型の特徴
- 後入れ先出し形式のデータ構造(Last In First Out)
- 最後に追加した要素を先に取り出したい場面で使用される
HashSet型の特徴
- 要素の重複が無く、順番の概念が無いデータ構造
- 要素の一意性を保ちたい場面で便利
備考
- 用途にあったコレクションを選択することで、効率的なプログラミングや性能向上が見込めます。