一般的に使用されるコレクション型
更新 : 2007 年 11 月
コレクション型は、ハッシュ テーブル、キュー、スタック、ディクショナリ、リストなど、一般的な種類のデータ コレクションです。
コレクションは ICollection インターフェイス、IList インターフェイス、IDictionary インターフェイス、またはそれぞれのジェネリック バージョンに基づきます。IList インターフェイスと IDictionary インターフェイスは、両方とも ICollection インターフェイスから派生するため、すべてのコレクションは直接または間接的に ICollection インターフェイスに基づくことになります。IList インターフェイスに基づくコレクション (Array、ArrayList、または List<T> など) または ICollection インターフェイスに直接基づくコレクション (Queue、Stack、または LinkedList<T> など) では、すべての要素に値のみが含まれます。IDictionary インターフェイスに基づくコレクション (Hashtable クラスと SortedList クラス、Dictionary<TKey, TValue> ジェネリック クラスと SortedList<TKey, TValue> ジェネリック クラスなど) では、すべての要素はキーと値の両方を含みます。KeyedCollection<TKey, TItem> クラスは、値と、値に埋め込まれたキーから成るリストであり、一意の存在です。したがって、これはリストやディクショナリのように動作します。
ジェネリック コレクションは、厳密に型指定するためには最適です。また、使用言語でジェネリックをサポートしていない場合でも、System.Collections 名前空間に含まれている CollectionBase、ReadOnlyCollectionBase、DictionaryBase などの基本コレクションを使用できます。これらのコレクションは抽象基本クラスであり、厳密に型指定されるコレクション クラスを作成するために拡張できます。
コレクションは、要素の格納方法、要素の並べ替え方法、検索の実行方法、および比較の実行方法によって異なります。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」を参照してください。
このセクションの内容
Array コレクション型
コレクションとして扱うことができる配列の機能について説明します。ArrayList コレクション型と List コレクション型
最も一般的に使用されるコレクション型であるジェネリック リストと非ジェネリック リストの機能について説明します。Hashtable コレクション型と Dictionary コレクション型
ジェネリックと非ジェネリックのハッシュベースのディクショナリ型の機能について説明します。SortedList コレクション型と SortedDictionary コレクション型
ディクショナリ機能とリスト機能を組み合わせる並べ替えられたディクショナリ型とハイブリッド型について説明します。Queue コレクション型
ジェネリックと非ジェネリックのキューの機能について説明します。Stack コレクション型
ジェネリックと非ジェネリックのスタックの機能について説明します。HashSet コレクション型
ジェネリック HashSet<T> コレクション型について説明します。HashSet 操作と LINQ セット操作
HashSet<T> コレクション型に用意されているセット操作、および LINQ セット操作について説明します。
参照
System.Collections
各種のオブジェクトのコレクションを定義するインターフェイスとクラスを含む System.Collections 名前空間のリファレンス ドキュメントを提供します。System.Collections.Generic
ジェネリック コレクションを定義するインターフェイスとクラスを含む System.Collections.Generic 名前空間のリファレンス ドキュメントを提供します。System.Collections.ICollection
すべての非ジェネリック コレクションのサイズ、列挙子、および同期メソッドを定義する ICollection クラスの主な機能について説明します。System.Collections.Generic.ICollection<T>
ジェネリック コレクションを操作するメソッドを定義する ICollection<T> クラスの主な機能について説明します。System.Collections.IList
インデックスを使用して個別にアクセスできるオブジェクトの非ジェネリック コレクションを表す IList クラスの主な機能について説明します。System.Collections.Generic.IList<T>
インデックスを使用して個別にアクセスできるオブジェクトのコレクションを表す IList<T> クラスの主な機能について説明します。System.Collections.IDictionary
キーと値の組み合わせの非ジェネリック コレクションを表す IDictionary クラスの主な機能について説明します。System.Collections.Generic.IDictionary<TKey, TValue>
キーと値の組み合わせのジェネリック コレクションを表す IDictionary<TKey, TValue> クラスの主な機能について説明します。
関連するセクション
コレクションとデータ構造体
.NET Framework で利用できるスタック、キュー、リスト、配列、構造体などのさまざまなコレクション型について説明します。.NET Framework におけるジェネリック
ジェネリック コレクション、ジェネリック デリゲート、ジェネリック インターフェイスなど、.NET Framework に用意されているジェネリック機能について説明します。C#、Visual Basic、および Visual C++ の機能についてのドキュメント、およびリフレクションなどのサポート テクノロジへのリンクを示します。