一般的に使用されるコレクション型

コレクション型は、ハッシュ テーブル、キュー、スタック、バッグ、ディクショナリ、リストなど、一般的な種類のデータ コレクションです。

コレクションは ICollection インターフェイス、IList インターフェイス、IDictionary インターフェイス、またはそれぞれのジェネリック バージョンに基づきます。 IList インターフェイスと IDictionary インターフェイスは、両方とも ICollection インターフェイスから派生するため、すべてのコレクションは直接または間接的に ICollection インターフェイスに基づくことになります。 IList インターフェイスに基づくコレクション (ArrayArrayListList<T> など) または ICollection インターフェイスに直接基づくコレクション (QueueConcurrentQueue<T>StackConcurrentStack<T>LinkedList<T> など) では、すべての要素に値のみが含まれます。 IDictionary インターフェイスに基づくコレクション (Hashtable クラスと SortedList クラス、Dictionary<TKey, TValue> ジェネリック クラスと SortedList<TKey, TValue> ジェネリック クラスなど) または ConcurrentDictionary<TKey, TValue> クラスでは、すべての要素はキーと値の両方を含みます。 KeyedCollection<TKey, TItem> クラスは、値と、値に埋め込まれたキーから成るリストであり、一意の存在です。したがって、これはリストやディクショナリのように動作します。

ジェネリック コレクションは、厳密に型指定するためには最適です。 また、使用言語でジェネリックをサポートしていない場合でも、System.Collections 名前空間に含まれている CollectionBaseReadOnlyCollectionBaseDictionaryBase などの基本コレクションを使用できます。これらのコレクションは抽象基本クラスであり、厳密に型指定されるコレクション クラスを作成するために拡張できます。 効率的なマルチスレッド コレクション アクセスが必要な場合は、System.Collections.Concurrent 名前空間でジェネリック コレクションを使用します。

コレクションは、要素の格納方法、要素の並べ替え方法、検索の実行方法、および比較の実行方法によって異なります。 Queue クラスと Queue<T> ジェネリック クラスは先入れ先出し一覧を提供し、Stack クラスと Stack<T> ジェネリック クラスは後入れ先出し一覧を提供します。 SortedList クラスと SortedList<TKey, TValue> ジェネリック クラスは、Hashtable クラスと Dictionary<TKey, TValue> ジェネリック クラスの並べ替えられたバージョンを提供します。 Hashtable または Dictionary<TKey, TValue> の要素には要素のキーでしかアクセスできませんが、SortedList または KeyedCollection<TKey, TItem> の要素には要素のキーまたはインデックスでアクセスできます。 すべてのコレクションのインデックスは、ゼロ ベースではない配列を許可する Array を除いてゼロ ベースです。

LINQ to Objects 機能を使用すると、オブジェクト型が IEnumerable または IEnumerable<T> を実装している限り、LINQ クエリを使ってメモリ内オブジェクトにアクセスできます。 LINQ クエリはデータ アクセス用の一般的なパターンです。通常、これは標準の foreach ループよりも簡潔で読みやすく、フィルター処理、並べ替え、およびグループ化機能を備えています。 さらに、LINQ クエリによってパフォーマンスを向上させることができます。 詳細については、「LINQ to Objects」および「Parallel LINQ (PLINQ)」を参照してください。

関連トピック

タイトル

説明

Array コレクション型

コレクションとして扱うことができる配列の機能について説明します。

ArrayList コレクション型と List コレクション型

最も一般的に使用されるコレクション型であるジェネリック リストと非ジェネリック リストの機能について説明します。

Hashtable コレクション型と Dictionary コレクション型

ジェネリックと非ジェネリックのハッシュベースのディクショナリ型の機能について説明します。

Sorted コレクション型

リストとセットの並べ替え機能を提供するクラスについて説明しています。

Queue コレクション型

ジェネリックと非ジェネリックのキューの機能について説明します。

Stack コレクション型

ジェネリックと非ジェネリックのスタックの機能について説明します。

HashSet コレクション型

ジェネリック System.Collections.Generic.HashSet<T> コレクション型について説明します。

HashSet 操作と LINQ セット操作

System.Collections.Generic.HashSet<T> コレクション型に用意されているセット操作、および LINQ セット操作について説明します。

コレクションとデータ構造体

.NET Framework で利用できるスタック、キュー、リスト、配列、構造体などのさまざまなコレクション型について説明します。

.NET Framework におけるジェネリック

ジェネリック コレクション、ジェネリック デリゲート、ジェネリック インターフェイスなど、.NET Framework に用意されているジェネリック機能について説明します。 C#、Visual Basic、および Visual C++ の機能についてのドキュメント、およびリフレクションなどのサポート テクノロジへのリンクを示します。

参照

System.Collections

System.Collections.Generic

System.Collections.ICollection

System.Collections.Generic.ICollection<T>

System.Collections.IList

System.Collections.Generic.IList<T>

System.Collections.IDictionary

System.Collections.Generic.IDictionary<TKey, TValue>